Android 日志打印器

LogUtils


實(shí)現(xiàn)功能

  • 兼容 Android Studio 3.1.0 的 Logcat 完美顯示日志
  • 兼容 Kotlin
  • 可設(shè)置 Log 開啟和關(guān)閉
  • 可設(shè)置是否輸出到控制臺(Logcat)
  • 可設(shè)置 Log 全局 Tag
  • 全局 Tag 為空時 Tag 為當(dāng)前類名
  • 可設(shè)置 Log 是否顯示頭部信息
  • Log 文件頂部顯示設(shè)備信息
  • Log 頭部含有當(dāng)前線程名
  • Log 頭部含有當(dāng)前類及行號和函數(shù)名,支持點(diǎn)擊跳轉(zhuǎn)
  • 可設(shè)置 Log 是否寫入文件
  • 可設(shè)置 Log 寫入文件目錄
  • 可設(shè)置 Log 寫入文件前綴
  • 可設(shè)置 Log 是否顯示邊框
  • 可設(shè)置 Log 控制臺過濾器
  • 可設(shè)置 Log 文件過濾器
  • 可設(shè)置 Log 棧深度
  • 可設(shè)置 Log 棧偏移
  • 支持控制臺長字符串的輸出
  • 支持多參數(shù)輸出
  • 支持單獨(dú)寫入文件
  • 支持 JSON 串的輸出
  • 支持 XML 串的輸出
  • 支持 Live Templates

方法 -> LogUtils.java

init                     : 初始化
getConfig                : 獲取 log 配置
Config.setLogSwitch      : 設(shè)置 log 總開關(guān)
Config.setConsoleSwitch  : 設(shè)置 log 控制臺開關(guān)
Config.setGlobalTag      : 設(shè)置 log 全局 tag
Config.setLogHeadSwitch  : 設(shè)置 log 頭部信息開關(guān)
Config.setLog2FileSwitch : 設(shè)置 log 文件開關(guān)
Config.setDir            : 設(shè)置 log 文件存儲目錄
Config.setFilePrefix     : 設(shè)置 log 文件前綴
Config.setBorderSwitch   : 設(shè)置 log 邊框開關(guān)
Config.setSingleTagSwitch: 設(shè)置 log 單一 tag 開關(guān)(為美化 AS 3.1 的 Logcat)
Config.setConsoleFilter  : 設(shè)置 log 控制臺過濾器
Config.setFileFilter     : 設(shè)置 log 文件過濾器
Config.setStackDeep      : 設(shè)置 log 棧深度
Config.setStackOffset    : 設(shè)置 log 棧偏移
log                      : 自定義 tag 的 type 日志
v                        : tag 為類名的 Verbose日志
d                        : tag 為類名的 Debug 日志 
i                        : tag 為類名的 Info 日志 
w                        : tag 為類名的 Warn 日志 
e                        : tag 為類名的 Error日志 
a                        : tag 為類名的 Assert 日志 
file                     : log 到文件
json                     : log 字符串之 json
xml                      : log 字符串之 xml

使用

在 Application 的 onCreate 函數(shù)中初始化,如下

            LogUtils.Config config = LogUtils.init(sInstance)
                    .setLogSwitch(BuildConfig.DEBUG)// 設(shè)置 log 總開關(guān),包括輸出到控制臺和文件,默認(rèn)開
                    .setConsoleSwitch(BuildConfig.DEBUG)// 設(shè)置是否輸出到控制臺開關(guān),默認(rèn)開
                    .setGlobalTag(null)// 設(shè)置 log 全局標(biāo)簽,默認(rèn)為空
                    // 當(dāng)全局標(biāo)簽不為空時,我們輸出的 log 全部為該 tag,
                    // 為空時,如果傳入的 tag 為空那就顯示類名,否則顯示 tag
                    .setLogHeadSwitch(true)// 設(shè)置 log 頭信息開關(guān),默認(rèn)為開
                    .setLogFileSwitch(false)// 打印 log 時是否存到文件的開關(guān),默認(rèn)關(guān)
                    .setDir("")// 當(dāng)自定義路徑為空時,寫入應(yīng)用的 /cache/log/ 目錄中
                    .setFilePrefix("")// 當(dāng)文件前綴為空時,默認(rèn)為 "alog",即寫入文件為 "alog-MM-dd.txt"
                    .setBorderSwitch(true)// 輸出日志是否帶邊框開關(guān),默認(rèn)開
                    .setSingleTagSwitch(true)// 一條日志僅輸出一條,默認(rèn)開,為美化 AS 3.1 的 Logcat
                    .setConsoleFilter(LogUtils.V)// log 的控制臺過濾器,和 logcat 過濾器同理,默認(rèn) Verbose
                    .setFileFilter(LogUtils.V)// log 文件過濾器,和 logcat 過濾器同理,默認(rèn) Verbose
                    .setStackDeep(1)// log 棧深度,默認(rèn)為 1
                    .setStackOffset(0);// 設(shè)置棧偏移,比如二次封裝的話就需要設(shè)置,默認(rèn)為 0
            LogUtils.d(config.toString());
            
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

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

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