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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章