Android开发中时长会遇到需要保存日志到文件中的需求,功能本书非常简单,但是如果加上一些文件大小限制,文件个数限制,或者按天,按周按月生成等规则的话,考虑到性能问题做起来就会格外复杂。log4j是java中的一个日志库,后端的朋友应该相对熟悉一些,我也是在接入第三方SDK时候发现别人用到了这个库,所以查了资料,做一下汇总,并且封装了一个LogUtils库供以后使用方便
类库已经上传到jcenter
引用:
implementation 'com.common.log:LogUtils:1.0.3'
初始化:
1.默认配置
LogUtils.getInstance(this).init();
默认配置包括:
fileName:log_
路径:sdcard根目录+包名(sd卡不可用:data/data/包名/files)
默认会输出日志到logcat
默认使用按天生成日志规则,保留七天的日志信息
默认打印的日志level:Level.DEBUG
默认输出的日志信息:"%d{yyy-MM-dd HH:mm:ss} %p %t %l %m%n"(日期+等级+线程+日志发生位置+信息)
示例:2020-03-09 10:50:10 WARN main com.example.logutils.MainActivity.onClick(MainActivity.java:21) ================================level warn
2.自定义配置:
LogUtils.getInstance(this)
.setUseLogCatAppender(true)
.setLogCatPattern("%m%n")
.setFileName(Environment.getExternalStorageDirectory() + File.separator + getPackageName()
+ File.separator + "log_")
.setUseFileAppender(false)
.setMaxFileSize(524288L)
.setMaxBackupSize(5)
.setUseDailyFileAppender(true)
.setKeepDays(7)
.setDatePatternType(DatePatternType.TOP_OF_DAY)
.setFilePattern("%d{yyy-MM-dd HH:mm:ss} %p %t %l %m%n")
.init();
方法含义:
setFileName:设置日志文件名&#x