以编程方式在log4j 2中禁用关闭挂钩

11

可以通过配置在log4j2中禁用关闭挂钩(shutdown hooks):

<Configuration shutdownHook="disable">

是否可以通过编程实现这一点?


该链接告诉我如何通过配置禁用关闭挂钩,并在代码中手动关闭log4j2。但它没有告诉我如何在代码中禁用关闭挂钩。 - Justin Wong
1个回答

7

我知道这可能已经过时了,但我遇到了你的问题并且处于同样的情况。因此,对于有兴趣的人们,我使用以下代码片段来实现程序化停止关闭挂钩:

final LoggerContextFactory factory = LogManager.getFactory();

if (factory instanceof Log4jContextFactory) {
    LOG.info("register shutdown hook");
    Log4jContextFactory contextFactory = (Log4jContextFactory) factory;

    ((DefaultShutdownCallbackRegistry) contextFactory.getShutdownCallbackRegistry()).stop();
}

而且在我的自定义关闭挂钩中

LogManager.shutdown();

log4j2: 2.8.2版本(但自2.6版本后应该可用)


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接