Android日志框架Logger

1、Logger簡(jiǎn)介

Logger相對(duì)系統(tǒng)自帶log,輸出格式清晰,功能更全,使用方便
github:https://github.com/orhanobut/logger

2、簡(jiǎn)單使用

1)添加依賴

implementation 'com.orhanobut:logger:2.2.0'

2)初始化

Logger.addLogAdapter(new AndroidLogAdapter());

3)使用

Logger.d("hello");

3、修改默認(rèn)配置

FormatStrategy formatStrategy = PrettyFormatStrategy.newBuilder()
  .showThreadInfo(false)      //(可選)是否顯示線程信息。 默認(rèn)值為true
  .methodCount(2)               // (可選)要顯示的方法行數(shù)。 默認(rèn)2
  .methodOffset(7)               // (可選)設(shè)置調(diào)用堆棧的函數(shù)偏移值,0的話則從打印該Log的函數(shù)開始輸出堆棧信息,默認(rèn)是0
  .logStrategy(customLog)  //(可選)更改要打印的日志策略。 默認(rèn)LogCat
  .tag("MyTAG")                  //(可選)每個(gè)日志的全局標(biāo)記。 默認(rèn)PRETTY_LOGGER(如上圖)
  .build();
Logger.addLogAdapter(new AndroidLogAdapter(formatStrategy));

一般使用默認(rèn)配置即可

4、設(shè)置標(biāo)簽

1)設(shè)置全局標(biāo)簽,如同修改默認(rèn)參數(shù)一樣

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

2)設(shè)置局部標(biāo)簽

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

5、關(guān)閉日志輸出

當(dāng) isLoggable 返回true時(shí)輸出日志,否則不輸出

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

可根據(jù)參數(shù) priority、 tag 選擇性的關(guān)閉打開日志

6、寫日志到文本

寫到日志,需要寫入權(quán)限
AndroidManifest.xml申請(qǐng),還要在動(dòng)態(tài)申請(qǐng)

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

開啟寫入配置

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

從CsvFormatStrategy源碼中看到,設(shè)置后日志將會(huì)寫到根目錄logger文件夾下的文件中

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

當(dāng)日志文件超過500K時(shí),將新建文件

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

7、注意

如果要寫到文件,同時(shí)也要在控制臺(tái)中看到,需要同時(shí)添加兩個(gè)適配器

        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;
            }
        });
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容