如何解决有没有办法在不创建 Java 类的情况下在 logback.xml 中指定自定义转换器?
我需要用 org.apache.commons.lang.exception.ExceptionUtils#getStackTrace()
输出替换标准的 logback 堆栈跟踪输出。我读过转换器,但我想在不编写 java 类的情况下做同样的事情,只需编辑 logback.xml。有没有办法做到这一点?
我的 logback.xml 的一部分:
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<filter class="ch.qos.logback.classic.filter.ThresholdFilter">
<level>INFO</level>
</filter>
<encoder>
<pattern>%d %-5level %logger{0} \(%thread\) %m%ex%n</pattern>
</encoder>
</appender>
解决方法
无自定义代码:
在 logstash-logback-encoder 中使用 throwable 转换器
示例:
<appender name="consoleAppender" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="net.logstash.logback.encoder.LogstashEncoder">
<stackTrace>
<fieldName>stacktrace</fieldName>
<throwableConverter class="net.logstash.logback.stacktrace.ShortenedThrowableConverter">
<pattern>[%thread] - %msg%n%stack{1,1024,10,rootFirst}</pattern>
</throwableConverter>
</stackTrace>
</encoder>
</appender>
自定义代码:
编写自己的转换器:LongMessageConverter
<conversionRule conversionWord="customConverter" converterClass="com.package.util.logging.converters.CustomMessageConverter">
<appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
<encoder>
<pattern>%customConverter{25} [%thread] - %msg%n</pattern>
</encoder>
</appender>
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。