logback 日志输出格式设置 r囧r小猫 2022-04-10 13:40 660阅读 0赞 ### logback 日志输出格式设置 ### * * 部分标签解释 * 内置转换器 * 部分特殊字符串解释 * 更多内置特殊字符 * 如何自定义输出样式 * * 字符颜色定义 * 内置的一些样式 * 代码示例 * * 使用内置模板 * 使用自定义模板 > [跳转到其他logback.xml相关的内容][logback.xml] ## 部分标签解释 ## * `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(这里放输出内容)` > 配合特殊字符串, 可以输入时间, 线程名等 ### 内置的一些样式 ### ![在这里插入图片描述][watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjA4ODQ0_size_16_color_FFFFFF_t_70] ## 代码示例 ## ### 使用内置模板 ### <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> [logback.xml]: https://blog.csdn.net/qq_34208844/article/details/86288190 [watermark_type_ZmFuZ3poZW5naGVpdGk_shadow_10_text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzM0MjA4ODQ0_size_16_color_FFFFFF_t_70]: /images/20220328/a8c4d1af43724deaaf15efadc522d3cc.png
还没有评论,来说两句吧...