在Android應用開發(fā)過程中悔醋,經(jīng)常會用到日志打印功能摩窃,如果使用Android系統(tǒng)的android.util.Log來打印日志,那么不能夠做到將日志內容持久化存儲下來,這樣就不方便開發(fā)人員追溯問題了~
本文給大家分享下Android開發(fā)下的日志框架xLog的使用猾愿,利用它能實現(xiàn)將日志持久化到磁盤中鹦聪,存儲為文件,類似于Java Web開發(fā)中使用到的logback框架蒂秘;將采集到的日志文件發(fā)送給開發(fā)人員泽本,便于排查問題~,很適合將xLog集成到測試版的應用中來收集問題
使用到的軟件環(huán)境
- Android模擬器 Pixel 5 Android8.0系統(tǒng)
- android studio 2020.3.1
- jdk 1.8
參考文檔:https://github.com/elvishew/xLog/blob/master/README_ZH.md
使用方式
1.修改app下的build.gradle姻僧,添加xLog日志庫的依賴
2.因為要將日志內容寫入磁盤规丽,需要編輯應用清單文件AndroidManifest.xml添加文件相關權限
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE"/>
<uses-permission android:name="android.permission.MANAGE_EXTERNAL_STORAGE"/>
3.做好配置后,就可以在工程中使用了撇贺,先是初始化xLog的相關打印配置赌莺,建議放在Application的onCreate生命周期中初始化一次就可以了,我這里為了演示方便松嘶,就直接在MainActivity的onCreate中初始化了
初始化的代碼中可以配置日志打印的生效級別艘狭,線程信息,堆棧深度喘蟆,打印格式缓升,寫入文件路徑等
4.接著就可以在代碼中使用xLog相關日志打印方法來打印日志了,打印的日志便會存儲到你設定的日志路徑中蕴轨,日志打印方法中支持使用%s來插值港谊,打印出的內容會根據(jù)傳入的參數(shù)來格式化輸出~,還支持以美觀的格式打印出map類型橙弱、json類型數(shù)據(jù)結構
運行效果
編寫完打印的測試代碼歧寺,可以運行到模擬器中來觀察下運行效果~
允許文件權限
點擊日志打印的按鈕來觸發(fā)日志打印,觀察控制臺的日志輸出棘脐,首字母展示出了日志打印的級別
map斜筐、json類型的日志打印效果
再來看下日志文件是否已經(jīng)被寫入磁盤中,根據(jù)日志路徑蛀缝,可以在模擬器的文件管理應用中找到對應位置
已經(jīng)可以看到日志內容被寫入文件中了~
到此顷链,xLog日志框架的使用已經(jīng)演示完成了,需要注意的是屈梁,在生產(chǎn)版本的app中嗤练,開啟日志的寫入磁盤功能多少會有一些性能損耗,對于性能差的Android機器運行應用來看會降低一些用戶體驗在讶,如果一定要寫日志煞抬,也應該設置一個更高的日志級別才合適~
完整測試工程參考:https://github.com/netbuffer/android-technology-test/tree/master/xLogtest