我对log4j完全陌生。我正在动态打开和关闭运行良好的日志记录,但是我注意到记录器正在打印两次。我在网上搜索解决方案,发现它是可加性属性,并将其设置为false。我的记录器是最终的静态变量,其次是我的log4j.xml文件。
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE log4j:configuration SYSTEM "http://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/xml/doc-files/log4j.dtd">
<log4j:configuration debug="true" xmlns:log4j="http://jakarta.apache.org/log4j/">
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
</layout>
</appender>
<logger additivity="false" name="My package name">
<appender-ref ref="console" />
</logger>
<root>
<level value="ON" />
<appender-ref ref="console"/>
</root>
</log4j:configuration>
我在包装中有多个使用记录器的Java文件,我声明如下:
private static final Logger LOGGER = Logger.getLogger(MyJavaFile.class);
有人可以指出我的错误和可能的解决方法。我使用this link创建了动态功能。