1. 添加依赖:
implementation 'de.mindpipe.android:android-logging-log4j:1.0.3'
implementation 'log4j:log4j:1.2.17'
2.初始化:
public String getLogDirectory() {
return Environment.getExternalStorageDirectory().getAbsolutePath()+ "/日志/";
}
public void configLogger() {
File dir = new File(getLogDirectory());
if (!dir.exists()) {
try {
//按照指定的路径创建文件夹
dir.mkdirs();
} catch (Exception e) {
System.out.println(""+e);
}
}
File file = new File(getLogDirectory() + "/log.txt");
if (!file.exists()) {
try {
//在指定的文件夹中创建文件
file.createNewFile();
} catch (Exception e) {
System.out.println(""+e);
}
}
LogConfigurator logConfigurator = new LogConfigurator();
logConfigurator.setFileName(getLogDirectory() + "log.txt");//日志名称
logConfigurator.setRootLevel(Level.ERROR);//级别
logConfigurator.setFilePattern("%d %-5p [%t][%c{2}]-[%l] %m%n");
//打印的信息:[4GPTT][DEBUG][2018-10-16 13:19:14,553][main][HibernatePersistenceProvider.java:38]Logging Provider: org.jboss.logging.Log4jLoggerProvider
logConfigurator.setUseLogCatAppender(true);//是否本地控制台打印输出 默认为true ,false不输出
logConfigurator.setMaxFileSize(1024 * 1024 * 10);//文件最大10M
logConfigurator.setMaxBackupSize(1);//最大备份日志文件的个数为1个(也就是会生成一个log.txt.1的文件;如果设为2,就表示有log.txt.1和log.txt.2;当然最新的日志还是存在log.txt中;如果想看前面的日志,可以看备份文件。)
logConfigurator.setImmediateFlush(true);//设置所有消息是否被立刻输出 默认为true,false 不输出
logConfigurator.configure();
}
注:getLogDirectory()方法返回的是期望日志存储的路径;
configLogger()方法是设置具体的存储参数,有日志文件名称,日志级别,存储的大小,最多存储的文件个数。
3:使用:
public static Logger logger = Logger.getLogger(MainActivity.class);
logger.debug("这是测试日志!!!debug");
logger.info("这是测试日志!!!info");
logger.warn("这是测试日志!!!warn");
logger.error("这是测试日志!!!error");
注:在哪个类中使用,就把MainActivity改为相应的类名即可。