日誌是任何項目開發中的必須組件,它可以記錄下來系統的行爲,幫助開發者排錯,優化系統性能調整系統行爲等.既然日誌可以幫助我們做很多分析,那麼開發者肯定是有很多定製需求的,例如不同環境過濾不同等級的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