最近在搞andoird項目時,經常碰到客戶那邊機器型號不一樣,導致程式有BUG問題,而我們這邊又無法定位這個BUG的確切位置(因為沒有LOG檔案)。
因此找了一下把程式日誌寫在SD卡的相關資料,就像WEB的log4j一樣,產生一個記錄檔到SD卡。
找了半天,沒有找到一個滿意的開源軟體,就找到了microlog4android,用起來雖然不大滿意,不過也能滿足大部分需求了。
具體使用如下:
1、下載
到http://code.google.com/p/microlog4android/downloads/list 下載microlog4android-1.0.0.jar和microlog.properties檔案
2、建立使用logger對象
private static final Logger logger = LoggerFactory.getLogger(main.class);
3、在程式的第一個activity的oncreate方法裡初始化方法
PropertyConfigurator.getConfigurator(this).configure();
4、把microlog.properties檔案放到assets檔案夾裡
注意:assets檔案夾是與res檔案夾平級的
然後更改microlog.properties檔案為以下內容:
microlog.level=DEBUG
microlog.appender=LogCatAppender;FileAppender
microlog.formatter=PatternFormatter
microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T
5、寫日誌記錄
logger.debug("這是debug資訊");
6、在AndroidManifest.xml 添加寫sd卡的許可權
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
運行程式,然後到SD卡根目錄,可以發現有一個microlog.txt的檔案,裡面就是我們的日誌了。
後續:
有朋友問如何變更記錄檔檔案的路徑和名稱,在網上找了一通的資料,沒找到答案,只好到https://github.com/johanlkarlsson/microlog4android 下載原始碼,經過查看原始碼的PropertyConfigurator類,發現原始碼裡有這麼一個配置參數microlog.appender.FileAppender.File,這樣應該就可以變更記錄檔檔案的路徑和名稱了。
設定檔如下:
microlog.level=DEBUG
microlog.appender=FileAppender;LogCatAppender
microlog.appender.FileAppender.File=mylog.txt
microlog.formatter=PatternFormatter
microlog.formatter.PatternFormatter.pattern=%c [%P] %m %T
運行程式,發現記錄檔還是叫microlog.txt,更改名稱無效,找了各種原因都無法解決,只好反編譯我們之前下載的microlog4android-1.0.0.jar包,發現PropertyConfigurator這個類和剛剛從GIT下載的原始碼PropertyConfigurator類不一樣,microlog4android-1.0.0.jar包裡的PropertyConfigurator類沒有這樣的一個參數microlog.appender.FileAppender.File,只好把從GIT下載下來的原始碼,重新打個包,暫時打成microlog4android-1.1.jar,然後重新運行程式,OK,搞定,記錄檔名稱變成了我們配置的mylog.txt。
附上整個工程代碼http://files.cnblogs.com/fbsk/LogTest.zip