Logback AyncAppender不打印文件和行号

Kla*_*aus 11 logback fileappender

我有以下配置文件,它与Logback手册中的标准示例非常相似.唯一的区别是添加[%F:%L].虽然一切正常,但%F和%L不起作用.如果我删除异步appender并使用文件appender直接登录,一切都很好.

谁能解释一下发生了什么?以及如何打印文件名和行号应该是这两个参数?

<configuration>
  <appender name="FILE" class="ch.qos.logback.core.FileAppender">
    <file>myapp.log</file>
    <encoder><pattern>%logger{35} - [%F:%L] - %msg%n</pattern></encoder>
    </appender>
    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
         <appender-ref ref="FILE" />
    </appender>
   <root level="DEBUG"><appender-ref ref="ASYNC" /></root>
 </configuration>
Run Code Online (Sandbox Code Playgroud)

Cek*_*eki 30

您需要将AsyncAppender的includeCallerData属性设置为true.这是修改后的配置文件:

<configuration>
    <appender name="FILE" class="ch.qos.logback.core.FileAppender">
      <file>myapp.log</file>
      <encoder><pattern>%logger{35} - [%F:%L] - %msg%n</pattern></encoder>
    </appender>

    <appender name="ASYNC" class="ch.qos.logback.classic.AsyncAppender">
      <appender-ref ref="FILE" />
      <!-- add the following line -->
      <includeCallerData>true</includeCallerData>
    </appender>

    <root level="DEBUG"><appender-ref ref="ASYNC" /></root>
 </configuration>
Run Code Online (Sandbox Code Playgroud)