近期在做一個接入了第三方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下載下傳位址