2013-10-03 63 views
0

我已經創建了下面的日誌配置Log4j2 AsyncLogger總是線程等待狀態

 <appenders> 
     <RollingRandomAccessFile name="SUMMARY_ALL" fileName="./logs/summary.log" 
     filePattern="logs/$${date:yyyy-MM}/summary-%d{yyyy-MM-dd-HH}-%i.log.gz" immediateFlush="false" append="false"> 
     <PatternLayout> 
      <pattern>%d{ISO8601} [%t] %p %c %L - %m%n</pattern> 
     </PatternLayout> 
     <Policies> 
      <TimeBasedTriggeringPolicy interval="6" 
       modulate="true" /> 
      <SizeBasedTriggeringPolicy size="10 MB" /> 
     </Policies> 
     </RollingRandomAccessFile> 
     </appenders> 

記錄器的簡單應用:

<loggers> 
    <root level="DEBUG" includeLocation="false"> 
     <AppenderRef ref="SUMMARY_ALL" /> 
    </root> 
</loggers> 

當我在等待狀態運行此我總是得到AsyncLogger 。任何人都可以請幫忙。附件爲ThreadDump

enter image description here

回答

0

這個問題也被髮布到log4j的郵件列表的快照。討論摘要:

大多數情況下,AsyncLogger線程將處於等待狀態,要麼等待新工作到來,要麼等待阻塞的I/O調用返回。

這是預期的行爲。只要事件正確記錄,這不是一個問題。

有關AsyncAppenders和AsyncLoggers之間區別的詳細信息,請參見Christian Grobmeier的博文http://www.javacodegeeks.com/2013/07/log4j-2-performance-close-to-insane.html

相關問題