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());
