Android使用log4j實現SD卡的日誌記錄

準備工作

依賴包下載,此處下載兩個。
Log4J library:
http://mirrors.cnnic.cn/apache/logging/log4j/1.2.17/log4j-1.2.17.zip
Android Logging Log4J:
http://code.google.com/p/android-logging-log4j/downloads/list
下載之後添加jar包到項目結構中。


添加權限

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

上述的第二個權限可能會提示出錯,可以不管它。


實現代碼

將Logger的配置放在Application中,使得APP開啓就能初始化使用。之後在各個地方使用日誌的話只需要按照下面的測試類寫即可。

package com.example.cz.monitorforpad;
/**
 * APP打開就會自動執行的類,放一些全局變量啥的或者需要初始化的
 * @author cz
 */
public class GlobalApplication extends Application {

    @Override
    public void onCreate() {
        super.onCreate();
        initLogger();			// Init the logger
    }

	/**
	初始化與配置Logger
	*/
    private void initLogger(){
        LogConfigurator logConfigurator = new LogConfigurator();
        logConfigurator.setFileName(Environment.getExternalStorageDirectory().getAbsolutePath()
                + File.separator + "MyApp" + File.separator + "logs"
                + File.separator + "log4j.txt");				// 日誌存儲路徑,如果該路徑沒有會自動創建文件
        logConfigurator.setRootLevel(Level.DEBUG);
        logConfigurator.setLevel("log", Level.ERROR);
        logConfigurator.setFilePattern("%d %-5p [%c{2}]-[%L] %m%n");
        logConfigurator.setMaxFileSize(1024 * 1024 * 5);
        logConfigurator.setImmediateFlush(true);
        logConfigurator.configure();				// 設置提交
    }
}

以下爲測試。可以對此邏輯進行進一步封裝。

/**
Test Activity
*/
public class TestActivity extends Activity{
	// ...Other methods 省略其他方法

	public void testLog(){
        Logger log = Logger.getLogger(TestActivity.class);	   // 在什麼類使用就傳入此類
        log.info("My Application Created");
	}

}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章