【发布时间】:2021-01-24 19:08:06
【问题描述】:
我正在将 log4j 1 升级到 log4j 2。我在 log4j1 和 append(LoggingEvent event) 方法中创建了一个自定义附加程序,我使用 event.getThrowableStrRep() 检索错误堆栈跟踪并为每一行附加 '\t'。
我在 log4j2 中看不到 getThrowableStrRep。你能帮我看看我们如何在 log4j2 中做到这一点吗?
【问题讨论】:
我正在将 log4j 1 升级到 log4j 2。我在 log4j1 和 append(LoggingEvent event) 方法中创建了一个自定义附加程序,我使用 event.getThrowableStrRep() 检索错误堆栈跟踪并为每一行附加 '\t'。
我在 log4j2 中看不到 getThrowableStrRep。你能帮我看看我们如何在 log4j2 中做到这一点吗?
【问题讨论】:
如果您想自定义自己的可抛出消息,则需要创建自己的插件,该插件应扩展 org.apache.logging.log4j.core.pattern.LogEventPatternConverter 并覆盖 format 方法。
了解如何自定义插件 http://logging.apache.org/log4j/2.x/manual/extending.html#PatternConverters.
http://logging.apache.org/log4j/2.x/log4j-core/apidocs/org/apache/logging/log4j/core/pattern/ThrowablePatternConverter.html 是将 LogEvent 转换为可抛出消息的示例。
创建自己的插件后,请参考http://logging.apache.org/log4j/2.x/manual/layouts.html#PatternLayout使用。
【讨论】: