Android 日誌管理框架 NativeLogger

日誌是任何項目開發中的必須組件,它可以記錄下來系統的行爲,幫助開發者排錯,優化系統性能調整系統行爲等.既然日誌可以幫助我們做很多分析,那麼開發者肯定是有很多定製需求的,例如不同環境過濾不同等級的log,格式化輸出,輸出到文件,打包日誌上傳分析等等.這裏就針對Android平臺開發一套日誌框架.後續將持續完善.
github地址:https://github.com/HiJesse/Android-NativeLogger

##功能清單

狀態 功能 默認
註解配置 支持
設置TAG NLogger
設置LEVEL WARN
是否捕獲全局異常 false
是否開啓文件日誌 true
文件日誌內容格式 SimpleFormatter
日誌文件存放路徑 /sdcard/native.logs/
日誌文件過期時間 1 day
日誌文件打包週期 1 day
格式化輸出JSON 支持
日誌混淆 -

: 已完成
: 待完成

Gradle引入

根項目build.gradle中引入mavenCentral.

allprojects {
    repositories {
        ...
        mavenCentral()
    }
}

Modulebuild.gradle中引入NLogger.

dependencies {
    compile 'com.github.hijesse:android-logger:2.0.0'
}

##如何使用

簡單用法-只使用基礎的Console log

NLogger.d("debug");
NLogger.i("MainActivity", "type1");
NLogger.w("MainActivity", "%s", "type2");
NLogger.d("MainActivity", "%s%d%s", "type", 3, "finish");
NLogger.e("uncaughtException", throwable);

日誌輸出
相當於直接使用Android SDK中的Log


進階用法

注意壓縮日誌文件的onZip回調爲子進程

        NLogger.getInstance()
                .builder()
                .tag("APP")
                .loggerLevel(LoggerLevel.DEBUG)
                .fileLogger(true)
                .fileDirectory(getApplicationContext().getFilesDir().getPath() + "/logs")
                .fileFormatter(new SimpleFormatter())
                .expiredPeriod(3)
                .catchException(true, new CrashWatcher.UncaughtExceptionListener() {
                    @Override
                    public void uncaughtException(Thread thread, Throwable ex) {
                        NLogger.e("uncaughtException", ex);
                        android.os.Process.killProcess(android.os.Process.myPid());
                    }
                })
                .build();

        NLogger.d("debug");
        NLogger.i("MainActivity", "type1");
        NLogger.w("MainActivity", "%s", "type2");
        NLogger.d("MainActivity", "%s%d%s", "type", 3, " finish");

        NLogger.zipLogs(new IFileLogger.OnZipListener() {
            @Override
            public void onZip(boolean succeed, String target) {
                if (succeed)
                    NLogger.i("zip", "succeed : " + target);
            }
        });

日誌輸出
配置功能清單中所有屬性,並且使用到了壓縮日誌文件的方法

日誌文件路徑

解壓2016-09-10.zip後得到日誌文件


轉載請註明出處:http://blog.csdn.net/l2show/article/details/52504653

發佈了66 篇原創文章 · 獲贊 15 · 訪問量 78萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章