美文网首页
Android日志框架Logger

Android日志框架Logger

作者: 放羊娃华振 | 来源:发表于2020-03-19 23:36 被阅读0次

    1、Logger简介

    Logger相对系统自带log,输出格式清晰,功能更全,使用方便
    github:https://github.com/orhanobut/logger

    2、简单使用

    1)添加依赖

    implementation 'com.orhanobut:logger:2.2.0'
    

    2)初始化

    Logger.addLogAdapter(new AndroidLogAdapter());
    

    3)使用

    Logger.d("hello");
    

    3、修改默认配置

    FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
      .showThreadInfo(false)      //(可选)是否显示线程信息。 默认值为true
      .methodCount(2)               // (可选)要显示的方法行数。 默认2
      .methodOffset(7)               // (可选)设置调用堆栈的函数偏移值,0的话则从打印该Log的函数开始输出堆栈信息,默认是0
      .logStrategy(customLog)  //(可选)更改要打印的日志策略。 默认LogCat
      .tag("MyTAG")                  //(可选)每个日志的全局标记。 默认PRETTY_LOGGER(如上图)
      .build();
    Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
    

    一般使用默认配置即可

    4、设置标签

    1)设置全局标签,如同修改默认参数一样

    FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
      .tag("MyTAG") 
      .build();
    Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));
    

    2)设置局部标签

    Logger.t("TAG").d("tag hello");
    

    5、关闭日志输出

    当 isLoggable 返回true时输出日志,否则不输出

    Logger.addLogAdapter(new AndroidLogAdapter() {
      @Override public boolean isLoggable(int priority, String tag) {
        return BuildConfig.DEBUG;
      }
    });
    

    可根据参数 priority、 tag 选择性的关闭打开日志

    6、写日志到文本

    写到日志,需要写入权限
    AndroidManifest.xml申请,还要在动态申请

    <uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"></uses-permission>
    

    开启写入配置

    CsvFormatStrategy formatStrategy = CsvFormatStrategy.newBuilder()
                    .tag("custom")
                    .build();
            Logger.addLogAdapter(new DiskLogAdapter(formatStrategy));
    

    从CsvFormatStrategy源码中看到,设置后日志将会写到根目录logger文件夹下的文件中

    String diskPath = Environment.getExternalStorageDirectory().getAbsolutePath();
            String folder = diskPath + File.separatorChar + "logger";
    

    当日志文件超过500K时,将新建文件

    private static final int MAX_BYTES = 500 * 1024; // 500K averages to a 4000 lines per file
    

    7、注意

    如果要写到文件,同时也要在控制台中看到,需要同时添加两个适配器

            CsvFormatStrategy formatStrategy = CsvFormatStrategy.newBuilder()
                    .tag("custom")
                    .build();
            Logger.addLogAdapter(new DiskLogAdapter(formatStrategy));
    
            Logger.addLogAdapter(new AndroidLogAdapter()
            {
                // 是否开启打印功能,返回true则打印,否则不打印
                @Override
                public boolean isLoggable(int priority, String tag)
                {
                    return BuildConfig.DEBUG;
                }
            });
    

    相关文章

      网友评论

          本文标题:Android日志框架Logger

          本文链接:https://www.haomeiwen.com/subject/chtdyhtx.html