首页 > 解决方案 > Logback 的“方法”转换字输出问号“?” 使用 AsyncAppender 时

问题描述

Logback 提供method转换字,但是在我的机器上它在使用 AsyncAppender 时只输出问号:

2020-09-09 12:14:57.551 IOService.?: Reading network …
2020-09-09 12:14:57.551 SocketIO.?: SOCKET - Writing data…

我正在使用相对简单的配置:

<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
    <pattern>%d{yyyy-MM-dd HH:mm:ss.SSS} %logger{0}.%method: %msg %n</pattern>
</encoder>

当切换到常规 FileAppender(例如ch.qos.logback.core.rolling.RollingFileAppender)时,它工作正常。

这是一个已知的问题?

标签: javalogbackjul-to-slf4j

解决方案


我添加includeCallerDataASYNCSTDOUTappender 并且它工作。有代码:

<appender name="ASYNCSTDOUT" class="ch.qos.logback.classic.AsyncAppender">
    <appender-ref ref="STDOUT"/>
    <includeCallerData>true</includeCallerData>
</appender>

在那里寻找原始讨论


推荐阅读