我有一个日志记录。xml,它有以下几行。
<appender name="console" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="com.logback.someexternalLib.externalencoder"/>
</appender>
这个外部编码器我们没有任何访问来更改代码,并负责发送日志到外部应用程序。我们希望在将其发送到外部编码器之前格式化日志
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>lb %d{yyyy-MM-dd HH:mm:ss.SSS} ${CorrelationReplacePattern} A4D-%X{mdc.sessionId} %-5level %class{-1}.%M %L - %msg%n</pattern>
</encoder>
<encoder class="com.logback.someexternalLib.externalencoder" />
</encoder>
原因是我们希望在每个日志中包含方法名以及相关ID。如何使日志行通过2个编码器。有人可以教我们如何在logback中做这件事。XML
1条答案
按热度按时间lh80um4z1#
没有办法将一个编码器 Package 在另一个编码器中:OutputStreamAppender保持单个编码器示例。
在旧版本的Logback中,编码器保存输出流并直接向其写入。在现代(1。2+)版本时,编码器生成一个字节数组,并依赖于appender将该数组写入其目的地。在这两种情况下,一个编码器调用另一个编码器都没有意义。
我的建议是看看是否有第三方日志库的版本已经更新到可以使用Logback1。2或以上。