在Android開發(fā)中少不了和日志打交道,而在大型項目中都是分模塊的,大公司基本上都是一個人負(fù)責(zé)一個模塊,可能還有獨立的日志模塊方便調(diào)試。自然代碼就開始冗余了。在小公司可能遇到的問題就是公司機器不全,無法覆蓋所有機型,出現(xiàn)在公司內(nèi)部無法復(fù)現(xiàn)用戶反饋的bug,這時你可能去查日志系統(tǒng)找到用戶上傳的日志,如果有,ok,你也許可以搞定,如果沒有呢?對于注重用戶體驗的公司可能你就得和用戶聯(lián)調(diào)了。對于和用戶聯(lián)調(diào)這其中諸多不便就不用說了,經(jīng)歷過的人都有體會。所以你需要在你認(rèn)為可能出現(xiàn)問題的地方打日志,一般而言只是其中一個模塊有問題。這時你可能需要在用戶的日志信息,無論通過應(yīng)用自動上傳到服務(wù)器還是通過用戶拷貝日志文件傳給你也罷。都需要手機本地保存一份日志回傳給你分析定位問題所在?;蛘吣阈枰_發(fā)的時候在本地保存一份日志,這樣你再何時何地都可以調(diào)試,比如在地鐵上調(diào)試弱網(wǎng)。
這篇文章就是為了解決以上痛點。
LogUtil for android
android日志工具類
特色
- 基于系統(tǒng)Log日志改造,簡單易用
- 支持保存本地文件日志
- 支持分模塊保存日志,在大工程項目中分模塊調(diào)試有優(yōu)勢
- 支持快捷方式打日志
使用
1.首先得在使用前初始化一次,一般在Application里面初始化
LogConfig logConfig = new LogConfig.Builder(getApplicationContext())
.setLogLevel(LogUtil.VERBOSE) //設(shè)置日志級別,當(dāng)為LogUtil.ASSERT不打印日志
.setNeedSaveToDefaultFile(true)
.prefix("-prefix-")
.suffix("-suffix-")
.defaultTag("LOG")
.dirPath("/sunshy")
.addSaveRule("MainActivity", true)
.addSaveRule("Feed", true)
.addSaveRule("qqq", false)
.build();
LogUtil.init(logConfig);
2.現(xiàn)在就可以像系統(tǒng)log一樣使用
LogUtil.e(TAG, "e 1");
LogUtil.e(TAG, "e 2", new Exception("e2"));
LogUtil.e("error1"); //無tag默認(rèn)當(dāng)前類名作為tag
LogUtil.e("error2", new Exception("error2"));
3.LogConfig 配置
setLogLevel(int logLevel) //設(shè)置日記打印級別, LogUtil.VERBOSE 打印VERBOSE級別以上所有日志
prefix(String prefix) //指定保存日志的文件前綴
suffix(String suffix) //指定保存日志的文件后綴
defaultTag(String tag) //指定保存到默認(rèn)日志文件model
dirPath(String dirPath); //指定保存文件的目錄,格式:"/xxx", 不設(shè)置 默認(rèn)使用當(dāng)前應(yīng)用名作為目錄
setNeedSaveToDefaultFile(boolean flag) //設(shè)置是否需要保存所有的日志到默認(rèn)文件
.addSaveRule(String tag, boolean needSave) //配置保存模塊規(guī)則,例如有個“PUBLISH”模塊,則所有使用這個tag都會保存在同一個文件 //指定tag是否需要保存,如果需要保存,則會保存到指定模塊文件,反之,則不保存,也不保存到默認(rèn)日志文件
示例
72E6DD50-E182-48F9-B3E2-6DFC041646B5.png
38F475E7-49B5-4920-ACA0-9C714BC3EF1E.png
安裝
Gradle
compile 'com.qyl.log:library:1.1.0'
Maven
<dependency>
<groupId>com.qyl.log</groupId>
<artifactId>library</artifactId>
<version>1.1.0</version>
<type>pom</type>
</dependency>
注意
- 確保有讀寫文件權(quán)限
- 保證手機有sdcard
- 打release包記得關(guān)閉日志 設(shè)置LogLevel最高ASSERT不打印日志
詳細(xì)介紹
https://github.com/qylshy/AndroidLogUtil/blob/master/README.md