java 我需要将每个日志行发送到多个编码器

hc2pp10m  于 2023-04-28  发布在  Java
关注(0)|答案(1)|浏览(87)

我有一个日志记录。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

lh80um4z

lh80um4z1#

没有办法将一个编码器 Package 在另一个编码器中:OutputStreamAppender保持单个编码器示例。
在旧版本的Logback中,编码器保存输出流并直接向其写入。在现代(1。2+)版本时,编码器生成一个字节数组,并依赖于appender将该数组写入其目的地。在这两种情况下,一个编码器调用另一个编码器都没有意义。
我的建议是看看是否有第三方日志库的版本已经更新到可以使用Logback1。2或以上。

相关问题