準備工作
依賴包下載,此處下載兩個。
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");
}
}