我在运行时在log4j.xml中添加记录器
<logger name="com.bas">
<priority value="DEBUG"/>
<appender-ref ref="B2BAPP"/>
</logger>
我的loding runtime log4j.xml的java代码
LogManager.resetConfiguration();
DOMConfigurator.configureAndWatch(log4j.xml,100000L);
通过以下方式在java代码中获取运行时记录器:
Enumeration enumLoggers =
Logger.getRootLogger().getLoggerRepository().getCurrentLoggers();
当我将logger添加到log4j时,我在 enumLoggers 中获取了记录器名称,但是如果我删除任何现有的loggger(如删除了logger“com.bas”)那么它就不会从enumLogger中删除即使在指定的时间延迟之后(在这种情况下为100000L)。
我可以知道为什么吗?有什么我想念的吗?
答案 0 :(得分:1)
快速查看XMLWatchdog
类(及其超类)会发现它没有调用LogManager.resetConfiguration()
,所以也许这就是原因?它可能意味着逐步地工作&#34;。