2017-09-05 127 views
1

我不得不重新配置log4j2这样的方法:如何在调用LogManager.shutdown()后重新启动log4j2?

LogManager.shutdown(); // SHUTDOWN log4j2 
    InputStream in = getClass().getResourceAsStream("/my2ndLog4j2.xml"); 
    ConfigurationSource source = new ConfigurationSource(in); 
    Configurator.initialize(null, source); 
    LoggerContext context = (LoggerContext) LogManager.getContext(false); 
    context.reconfigure(); 
    context.start(); // NOT WORK, no log appear anymore... 

这样我就可以在运行时之间生产日志的配置和开发配置重新配置log4j2,但是当我打电话LogManager.shutdown(),它真的永远SHUTDOWN,从来没有回来后,context.start()是不行的,事实上我这样做是log4j1.x了很长一段时间,在log4j1.x,用途:

org.apache.log4j.PropertyConfigurator.configure(cfgPath); 

然后回来,但如何log4j2?

回答

1

如果你想在运行时改变log4j2配置文件,然后在下面的代码足以做到这一点 -

Configurator.initialize(null, "my2ndLog4j2.properties"); 

无需关机LogManager然后再次启动它。

相关问题