1. 程式人生 > >android上如何實現後臺日誌記錄並寫檔案到sd卡

android上如何實現後臺日誌記錄並寫檔案到sd卡

對於安卓的日誌,我們通常的做法是通過 第三方的平臺來實現日誌的儲存,例如騰訊的Buglay友盟統計 來實現,這些方法可以幫我們快速的統計各種bug以及其他資訊,但是至少有一點不太好就是當涉及到一些隱私的資訊不希望暴露在第三方平臺(基於安卓控制系統的APP),況且這些資訊不是實時上傳的,基於這些考慮我們完全可以將這些log儲存在我們的本地,需要的時候可以直接開啟就可以看到。
具體步驟如下:
1、到Google Code 下載 microlog4android-1.0.0.jarmicrolog.properties
2、將下載的microlog4android-1.0.0.jar包放在lib檔案下,並設定為 librarys。
3、在程式的BaseActivit或者Application中的oncreate方法裡初始化方法中新增以下程式碼

PropertyConfigurator.getConfigurator(this).configure();

當然在這之前,我們需要新增

    private static final com.google.code.microlog4android.Logger logger = LoggerFactory.getLogger(TMApplication.class);//TMApplication為類名

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、在AndroidManifest.xml 新增寫sd卡的許可權

<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />

6、在需要列印日誌的地方新增

logger.info("Entering the simulation mode."+"----"+sdf.format(new Date())+"  \r\n");

當然這裡我是添加了時間和換行,在程式中我們需要宣告

private static final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-HH:mm:ss");

7、至此我們便完成了log的本地儲存,我們執行程式後,便可以在SD卡的根目錄的地方看到microlog.txt的檔案,開啟檔案就可以看到我們列印的log檔案。

13 TMApplication [INFO] Entering the simulation mode.----2017-05-29-10:23:07  

通過在我們的AS中也可以看到我們列印的日誌

05-29 11:00:09.319 14426-14918/com.scth.xk.targetservice I/Microlog: 13 TMApplication [INFO] Entering the simulation mode.----2017-05-29-11:00:09