在我们的项目中,目前我们有一个主portal-log4j.xml,在我们的工程中,我们需要使用portal-log4j-ext.xml覆盖它在portal-log4j.xml中,默认情况下,所有日志记录都是在控制台上完成的。
<root>
<priority value="INFO" />
<appender-ref ref="CONSOLE" />
<appender-ref ref="FILE" />
</root>
在被覆盖的portal-log4j-ext.xml文件中,我们有以下代码:
<appender name="FILE" class="org.apache.log4j.RollingFileAppender">
<param name="maxFileSize" value="10000kb" />
<param name="maxBackupIndex" value="20" />
<param name="file" value="D:/myLogFile.log" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d{ISO8601} %-5p [%C{1}] %x: %m%n"/>
</layout>
</appender>
<logger name="com.company.layoutimporter">
<level value="DEBUG" />
<appender-ref ref="FILE" />
</logger>
正如你所看到的,我可以写入一个文件,但它也会在控制台中记录。我们如何覆盖这种默认行为,以便我只能将包特定的消息记录到特定的日志文件(而不是控制台)。
提前感谢!
自己找到了解决方案。。必须将additivity="false"添加到logger标记中
这将基本上跳过父标记的日志记录。
更多信息:可添加性-什么以及为什么?