logback日志输出格式设置方式
部分标签解释
withJansi
: 是否配合jansi使用
filter
: 日志过滤器
layout
: 布局, 配合内置模板使用
pattern
: 日志模板, 有内置的日志模板可以直接使用, 例如: ${FILE_LOG_PATTERN}
encoder
: 编码器, 支付转码
charset
: 支付编码, 一般为utf-8
内置转换器
可以直接通过调用内置的转换器将日志取出来, 打印出来
部分特殊字符串解释
%d
: 表示日期
%thread
: 表示线程名
%-5level
: 级别从左显示5个字符宽度
%msg
: 日志消息
%n
: 是换行符
更多内置特殊字符
defaultConverterMap.put("d", DateConverter.class.getName()); defaultConverterMap.put("date", DateConverter.class.getName()); defaultConverterMap.put("r", RelativeTimeConverter.class.getName()); defaultConverterMap.put("relative", RelativeTimeConverter.class.getName()); defaultConverterMap.put("level", LevelConverter.class.getName()); defaultConverterMap.put("le", LevelConverter.class.getName()); defaultConverterMap.put("p", LevelConverter.class.getName()); defaultConverterMap.put("t", ThreadConverter.class.getName()); defaultConverterMap.put("thread", ThreadConverter.class.getName()); defaultConverterMap.put("lo", LoggerConverter.class.getName()); defaultConverterMap.put("logger", LoggerConverter.class.getName()); defaultConverterMap.put("c", LoggerConverter.class.getName()); defaultConverterMap.put("m", MessageConverter.class.getName()); defaultConverterMap.put("msg", MessageConverter.class.getName()); defaultConverterMap.put("message", MessageConverter.class.getName()); defaultConverterMap.put("C", ClassOfCallerConverter.class.getName()); defaultConverterMap.put("class", ClassOfCallerConverter.class.getName()); defaultConverterMap.put("M", MethodOfCallerConverter.class.getName()); defaultConverterMap.put("method", MethodOfCallerConverter.class.getName()); defaultConverterMap.put("L", LineOfCallerConverter.class.getName()); defaultConverterMap.put("line", LineOfCallerConverter.class.getName()); defaultConverterMap.put("F", FileOfCallerConverter.class.getName()); defaultConverterMap.put("file", FileOfCallerConverter.class.getName()); defaultConverterMap.put("X", MDCConverter.class.getName()); defaultConverterMap.put("mdc", MDCConverter.class.getName()); defaultConverterMap.put("ex", ThrowableProxyConverter.class.getName()); defaultConverterMap.put("exception", ThrowableProxyConverter.class.getName()); defaultConverterMap.put("rEx", RootCauseFirstThrowableProxyConverter.class.getName()); defaultConverterMap.put("rootException", RootCauseFirstThrowableProxyConverter.class.getName()); defaultConverterMap.put("throwable", ThrowableProxyConverter.class.getName()); defaultConverterMap.put("xEx", ExtendedThrowableProxyConverter.class.getName()); defaultConverterMap.put("xException", ExtendedThrowableProxyConverter.class.getName()); defaultConverterMap.put("xThrowable", ExtendedThrowableProxyConverter.class.getName()); defaultConverterMap.put("nopex", NopThrowableInformationConverter.class.getName()); defaultConverterMap.put("nopexception", NopThrowableInformationConverter.class.getName()); defaultConverterMap.put("cn", ContextNameConverter.class.getName()); defaultConverterMap.put("contextName", ContextNameConverter.class.getName()); defaultConverterMap.put("caller", CallerDataConverter.class.getName()); defaultConverterMap.put("marker", MarkerConverter.class.getName()); defaultConverterMap.put("property", PropertyConverter.class.getName()); defaultConverterMap.put("n", LineSeparatorConverter.class.getName());
如何自定义输出样式
字符颜色定义
使用%
加上颜色代号, 然后内容放在后面的括号()里面
例如:
- %white(这里放输出内容)
- 配合特殊字符串, 可以输入时间, 线程名等
内置的一些样式
代码示例
使用内置模板
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter class="com.wang.cloud.store.common.LogFilter"/> <layout class="ch.qos.logback.classic.PatternLayout"> <pattern>${FILE_LOG_PATTERN}</pattern> </layout> </appender>
使用自定义模板
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender"> <filter class="com.wang.cloud.store.common.LogFilter"/> <withJansi>false</withJansi> <encoder> <pattern>%white(%d{yyyy-MM-dd HH:mm:ss}) %highlight(%lsn) %green([%thread]) %highlight(%-5level) %boldMagenta(%logger{10}) - %cyan(%msg%n)</pattern> <charset>utf8</charset> </encoder> </appender>
总结
以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。
相关文章
基于Springboot2.3访问本地路径下静态资源的方法(解决报错:Not allowed to load local
这篇文章主要介绍了基于Springboot2.3访问本地路径下静态资源的方法(解决报错:Not allowed to load local resource),文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2020-08-08SpringBoot中@Scheduled实现服务启动时执行一次
本文主要介绍了SpringBoot中@Scheduled实现服务启动时执行一次,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧2024-08-08Java之String字符串在JVM中的存储及其内存地址的问题
这篇文章主要介绍了Java之String字符串在JVM中的存储及其内存地址的问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教2023-07-07关于springboot集成swagger3时spring-plugin-core报错的问题
这篇文章主要介绍了关于springboot集成swagger3时spring-plugin-core报错的问题,本文给大家分享解决方法,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下2021-09-09Android Studio 中Gradle配置sonarqube插件(推荐)
Sonarqube作为一个很实用的静态代码分析工具,在很多项目中都使用,本文重点给大家介绍Android Studio 中Gradle配置sonarqube插件的相关知识,感兴趣的朋友跟随小编一起看看吧2022-03-03
最新评论