天天看點

android開發:把指定的日志輸出到指定的檔案

近期在做一個接入了第三方sdk的項目,其中涉及到藍牙連接配接。藍牙連接配接的時候,LogCat中大量輸出了無用的BluetoothStack日志,輸出的都是一個對象的哈希值。将有用的log瞬間沖掉了。是以做了以下方式來檢視需要的日志。方法笨了點,不過,解決問題為先。而且這個方式還有一個用途,記完錯左過程再說。

首先,需要下載下傳相關jar包兩個:

        android-logging-log4j-1.0.3.jar

log4j-1.2.17.jar

導入到libs目錄下面就可以使用了。

由于使用方法比較簡單,我直接把官方的例子寫下:

初始化:

import java.io.File;
import org.apache.log4j.Level;
import android.os.Environment;
import de.mindpipe.android.logging.log4j.LogConfigurator;
/**
 * Call {@link #configure()}} from your application's activity.
 */
public class ConfigureLog4J {
    public static void configure() {
        final LogConfigurator logConfigurator = new LogConfigurator();
		
        logConfigurator.setFileName(Environment.getExternalStorageDirectory() + File.separator + "myapp.log");
        logConfigurator.setRootLevel(Level.DEBUG);
        // Set log level of a specific logger
        logConfigurator.setLevel("org.apache", Level.ERROR);
        logConfigurator.configure();
    }
}
           

使用:

import org.apache.log4j.Logger;

public class ExampleLog4J {
    private final Logger log = Logger.getLogger(ExampleLog4J.class);

    public void myMethod() {
        log.info("This message should be seen in log file and logcat");
    }
}
           

後記:

有個客戶使用我們的app時候崩潰了,但是描述的很模糊,我們又沒有使用者的那款手機,是以我嘗試使用這個方法,在我認為出現問題的地方,使用trycatch抓獲異常,然後将日志寫入檔案,讓使用者發送檔案回來。不過這個方法并不好,我最終使用了另一個方法來解決的。

為了儲存jar包,上傳到csdn的網盤,以備後用。

兩個jar包的csdn下載下傳位址