我在我的应用程序中使用log4j进行登录。从现在开始配置日志记录我使用以下代码:
LogManager.resetConfiguration();
InputStream stream = Thread.currentThread().getContextClassLoader().getResourceAsStream("log4j.properties");
Properties props= new Properties();
props.load(stream);
PropertyConfigurator.configure(props);
但问题是,每当我想在此过程中更改日志记录级别时,我必须重新启动服务器。所以我将代码更改为: -
LogManager.resetConfiguration();
PropertyConfigurator.configureAndWatch(("log4j.properties", 900000L);
理想情况下,这段代码应该有助于在指定的时间后重新加载log4j.properties文件,我已经提到过15分钟。但是代码仍无效
我在代码中错过了什么吗?
问候。
答案 0 :(得分:7)
configureAndWatch()
观看文件。不是类路径中的资源。
答案 1 :(得分:1)
我尝试了解决方案并且工作正常!关键是你必须像文件一样提供不像资源的路径。
//Resource
DOMConfigurator.configureAndWatch("/log4j.xml", 2000L);
//File
DOMConfigurator.configureAndWatch("./src/log4j.xml", 2000L);
尝试第二个选项并修改 log4j.xml 并测试它!