2017-09-05 128 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然後再次啓動它。

相關問題