我正在用AsyncAppender创建一个示例Log4j2配置,在执行完成之后,由AsyncAppender生成的线程不会被杀死吗?它是一个错误或任何配置是显式的杀死线程。
我的样本摘要附录
<!-- ####################### 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进程应该退出,但它不会。有人能帮帮我吗。
发布于 2013-10-02 13:15:32
我升级到log4j2-beta-9,它运行良好。
发布于 2013-10-01 23:01:07
这将关闭日志记录子系统并停止任何异步线程:
((LifeCycle) LogManager.getContext()).stop();(这需要更好的记录.)
发布于 2019-04-01 14:17:08
在web应用程序上下文中,对我最有效的是
org.apache.logging.log4j.LogManager.shutdown();https://stackoverflow.com/questions/19116984
复制相似问题