android开发:把指定的日志输出到指定的文件

时间:2021-12-04 12:40:38

近期在做一个接入了第三方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下载地址