如果您不喜欢使用“加性”功能,则这是另一种选择。
就我而言(大多数情况下也是如此),根记录器位于此附加日志的后面,并且您的配置中还有另一个更高的记录器,类似这样
<Loggers>
<Logger name="com.foo.Bar" level="trace">
<AppenderRef ref="Console"/>
</Logger>
<Root level="error">
<AppenderRef ref="Console"/>
</Root>
</Loggers>
这将导致日志重复,并且如果您从该配置文件中完全删除了根记录器,log4j
将强制使用默认的根记录器,请检查此说明
如果Log4j找不到配置文件,它将提供默认配置。DefaultConfiguration类中提供的默认配置将设置:
附加到根记录器的ConsoleAppender 。
一个PatternLayout设置为附加到ConsoleAppender的模式“%d {HH:mm:ss.SSS} [%t]%-5level%logger {36}-%msg%n”
请注意,默认情况下,Log4j将根记录程序分配给Level.ERROR。
如果要覆盖默认的根记录器并强制其不记录,可以从配置文件中删除它的Appender,如下所示
<Root level="error">
</Root>
这只是另一个选择,但是,我喜欢使用推荐的方法,并将“ additivity”属性设置为子记录器
<Logger name="com.foo.Bar" level="trace" additivity="false">
<AppenderRef ref="Console"/>
</Logger>