我的java项目包含以下软件包 - com.main.log4j.main,com.main.log4j.other。
我希望" com.main.log4j.other"的包装行从控制台日志中删除,而是为同一软件包维护另一个日志文件。我正在使用Log4J版本1.2.16,其中包括以下log4j.xml config。
<appender name="CONSOLE-LOG" class="org.apache.log4j.ConsoleAppender">
<param name="Target" value="System.out" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="..." />
</layout>
</appender>
<appender name="OTHER-LOG" class="org.apache.log4j.FileAppender">
<param name="File" value="logs/Others.log" />
<param name="Threshold" value="DEBUG" />
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="..." />
</layout>
</appender>
<category name="com.main.log4j.other">
<appender-ref ref="OTHER-LOG" />
</category>
<root>
<level value="debug" />
<appender-ref ref="CONSOLE-LOG" />
</root>
使用此配置,使用日志行创建了单独的日志文件其他。log,但这些日志行仍存在于控制台日志中。我想排除它们。请建议我如何配置log4j.xml?
将 additivity
设置为" com.main.log4j.other"类别中的false:
<category name="com.main.log4j.other" additivity="false">
这将防止这些日志也被登录在根记录器中。