0
我有一個web應用程序已使用log4j1.2到目前爲止同步記錄。我試圖將它移動到使用異步appender(從log4j 1.2)。我寫了一個XML文件 - log4j.xml,它初始化async-appender。但是,當我檢查日誌時,我發現請求的ID未被記錄(儘管它迄今爲止已被記錄)。經過一番調查後,我認爲MDC中不存在請求ID的(密鑰,值)對。請求ID沒有登錄移動到log4j 1.2的異步appender
- 這是因爲async-appender是一個單獨的線程,並沒有繼承與主應用程序線程相同的鍵值對嗎?
- 有沒有一種方法可以在MDC中設置這些值,以便應用程序再次開始記錄請求ID?
供參考的log4j.xml文件:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
<log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/" debug="false">
<appender name="Async" class="org.apache.log4j.AsyncAppender">
<appender-ref ref="FILE"/>
</appender>
<appender name="FILE" class="org.apache.log4j.DailyRollingFileAppender">
<param name="File" value="/log/directory/logFile"/>
<param name="DatePattern" value="'.'yyyy-MM-dd-HH"/>
<param name="Append" value="true" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d [%-5p] %c %x - %m%n" />
</layout>
</appender>
<root>
<priority value="warn"/>
<appender-ref ref="Async"/>
</root>
</log4j:configuration>