- 源码下载地址
https://github.com/Blankj/ALog
- 在Application中初始化配置
/**
* 初始化Log工具类
*/
private void initLog() {
LogUtils.getConfig()
.setLogSwitch(true)// 设置 log 总开关,包括输出到控制台和文件,默认开
.setConsoleSwitch(true)//设置是否输出到控制台开关,默认开,如果设置为false控制台logcat将看不到日志
.setLog2FileSwitch(true)// 打印 log 时是否存到文件的开关,默认关,
即只有LogUtils.file才会将日志写入TXT文件中,反之所有日志操作都会写入TXT文件中。
.setSingleTagSwitch(true)//一条日志仅输出一条,默认开,为美化 AS 3.1.0 的 Logcat
.setmLogFileTypeAndTag(false)// 设置日志文件打印type和tag开关,默认为开
.setLogHeadSwitch(false)// 设置 log 头信息开关,默认为开(上面是仅日志文件,此处是控制台+日志文件)
.setGlobalTag("")//设置log全局标签,默认为空,当全局标签不为空时,我们输出的log全部为该tag;
//为空时,如果传入的 tag 为空那就显示类名,否则显示 tag
.setLogFilePrintDeviceInfo(false)// 设置日志文件打印设备信息开关,默认为开
.setDir(Environment.getExternalStorageDirectory())// 当自定义路径为空时,
写入应用的/cache/log/目录中
.setFilePrefix("vkl-log")// 当文件前缀为空时,默认为"util",
//即写入文件为"util-yyyy-MM-dd.txt"
.setBorderSwitch(true)// 输出日志是否带边框开关,默认开
.setConsoleFilter(LogUtils.V)// log 的控制台过滤器,和 logcat 过滤器同理,默认 Verbose
.setFileFilter(LogUtils.V)// log 文件过滤器,和 logcat 过滤器同理,默认 Verbose
.setStackDeep(1)// log 栈深度,默认为 1
.setStackOffset(0)// 设置栈偏移,比如二次封装的话就需要设置,默认为 0
// 新增 ArrayList 格式化器,默认已支持 Array, Throwable, Bundle, Intent 的格式化输出
.addFormatter(new LogUtils.IFormatter<ArrayList>() {
@Override
public String format(ArrayList list) {
return "ALog Formatter ArrayList { " + list.toString() + " }";
}
})
.setSaveDays(3);// 设置日志可保留天数,默认为 -1 表示无限时长
LogUtils.e("日志配置参数打印:\n:" + LogUtils.getConfig().toString());
}
- 各个功能区别截图
setSingleTagSwitch()
true
一条日志仅输出一条,默认开,如果不设置默认日志也是这样打印出来的
False:
setLogHeadSwitch()
设置 log 头信息开关,默认为开,第一条就是默认或者设置为true,2,3条是设置为false
同时这个也设置控制台输出的log形式
true:
false:
setmLogFileTypeAndTag()
设置日志文件打印type和tag开关,默认为开,红框就是
setLogFilePrintDeviceInfo()
设置日志文件打印设备信息开关,默认为开
setGlobalTag()
设置log 全局标签,默认为空,当全局标签不为空时,我们输出的log全部为该tag.为空时,即使你自定义 tag也会被强制设置成以上tag。
如果传入的 tag 为空那就显示类名,自定义的tag还是正常显示