首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >不终止log4j2异步记录器线程。

不终止log4j2异步记录器线程。
EN

Stack Overflow用户
提问于 2013-10-01 13:05:05
回答 3查看 1.7K关注 0票数 0

我正在用AsyncAppender创建一个示例Log4j2配置,在执行完成之后,由AsyncAppender生成的线程不会被杀死吗?它是一个错误或任何配置是显式的杀死线程。

我的样本摘要附录

代码语言:javascript
运行
复制
<!-- ####################### 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>

样本日志如下所示

代码语言:javascript
运行
复制
  <logger name="com.test.learn" level="DEBUG">
<appender-ref ref="Async" />
  </logger>

样本代码包com.test.learn;

进口org.apache.logging.log4j.LogManager;

代码语言:javascript
运行
复制
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进程应该退出,但它不会。有人能帮帮我吗。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2013-10-02 13:15:32

我升级到log4j2-beta-9,它运行良好。

票数 0
EN

Stack Overflow用户

发布于 2013-10-01 23:01:07

这将关闭日志记录子系统并停止任何异步线程:

代码语言:javascript
运行
复制
    ((LifeCycle) LogManager.getContext()).stop();

(这需要更好的记录.)

票数 1
EN

Stack Overflow用户

发布于 2019-04-01 14:17:08

在web应用程序上下文中,对我最有效的是

代码语言:javascript
运行
复制
org.apache.logging.log4j.LogManager.shutdown();
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/19116984

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档