[英]log4j2 asynchronous logger thread is not killed
我正在使用Asyn Appender創建一個示例Log4j2配置,執行完成后,由AsyncAppender生成的線程不會被殺死嗎? 是Bug還是任何明確配置都可以殺死線程。
我的樣本摘要Appender
<!-- ####################### SUMMARY FILE APPENDER ####################### -->
<RollingFile name="SUMMARY_ALL" fileName="./logs/summary.log"
filePattern="logs/$${date:yyyy-MM}/summary-%d{yyyy-MM-dd-HH}-%i.log.gz">
<PatternLayout>
<pattern>%d{ISO8601} [%t] %p %c %L - %m%n</pattern>
</PatternLayout>
<Policies>
<TimeBasedTriggeringPolicy interval="6"
modulate="true" />
<SizeBasedTriggeringPolicy size="10 MB" />
</Policies>
</RollingFile>
樣品記錄儀如下
<logger name="com.test.learn" level="DEBUG">
<appender-ref ref="Async" />
</logger>
示例代碼包com.test.learn;
導入org.apache.logging.log4j.LogManager;
public class TestLogger {
private static org.apache.logging.log4j.Logger log = LogManager
.getLogger(TestLogger.class);
public static void main(String[] args) {
log.info("testing logger");
}
}
執行此操作后,java進程應退出,但不退出。 誰能幫幫我嗎。
這將關閉日志記錄子系統並停止所有異步線程:
((LifeCycle) LogManager.getContext()).stop();
(這需要更好地記錄...)
我已升級到log4j2-beta-9,並且工作正常。
在Web應用程序上下文中最適合我的是
org.apache.logging.log4j.LogManager.shutdown();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.