> 文章列表 > Android 日志框架使用

Android 日志框架使用

Android 日志框架使用

 在实际开发中,经常会遇到需要打印日志并保存到文件中,便于后面取日志分析代码运行情况,当然如果只是打印日志不需要记录文件,使用android自带的log工具就完全够了,

Log打印日志会记录到系统日志中,可以取出系统日志然后通过tag过滤得到自己的log,不过系统日志比较大,一般只能保存一段时间的日志,所以我们需要把日志单独记录到自己的文件中,这样就不会被系统日志冲掉了。

1、使用到的开源日志框架有以下两个,可以网上自己下载, 也可以通过以下链接下载https://download.csdn.net/download/x995630736/87719297

android-logging-log4j-1.0.3.jar
apache-logging-log4j.jar

2、创建android 工程,jatr包放到libs目录下,并build.gradle中增加下面两行,重新编译

implementation files('libs/android-logging-log4j-1.0.3.jar')
implementation files('libs/apache-logging-log4j.jar')

3、创建自己的日志文件路径和文件名,我的日志路径如下,会在sdcard目录下生产LOG目录,

 public static String LOG_PATH = Environment.getExternalStorageDirectory().getAbsolutePath() + "/LOG/;

public static String appFile = "";

File file = new File(FileConfig.LOG_PATH );
if (!file.exists()) {file.mkdirs();
}
if (appFile == null || appFile.isEmpty()) {appFile = "app-" + getDateToStringStyle("yyyy-MM-dd-HH-mm", new Date()) + ".txt";
}

getDateToStringStyle是根本一定格式获取当前时间,方便看日志是什么时候生成的

 

4、配置日志参数, 可以放在MyApplication中初始化,这样在整个app中都可以调用

private static Logger logger = null;
LogConfigurator logConfigurator = new LogConfigurator();
logConfigurator.setFileName(FileConfig.LOG_PATH + appFile);
logConfigurator.setRootLevel(Level.WARN);
logConfigurator.setLevel("TEST", Level.WARN);
logConfigurator.setFilePattern("%m%n");
logConfigurator.setMaxFileSize(1024 * 1024 * 10);
logConfigurator.setImmediateFlush(true);
logConfigurator.configure();
logger = Logger.getLogger("TEST");

5、写日志到文件中

public static void logInfo(final Object msg) {if (msg == null || msg.toString().isEmpty()) {return;}String appMsg = getDateToStringStyle("MM-dd HH:mm:ss,SSS", new Date()) + ":" + msg.toString();if (logger == null) {logger = Logger.getLogger("TEST");}logger.warn(appMsg);
}