Java log4j:如何在控制台中只记录来自com.foo.*的消息?
在系统控制台中,我只想记录来自Java log4j:如何在控制台中只记录来自com.foo.*的消息?,java,xml,log4j,Java,Xml,Log4j,在系统控制台中,我只想记录来自com.foo.*的消息,而不想记录来自我正在使用的com.bar.* 以下是我所做的: <appender name="console" class="org.apache.log4j.ConsoleAppender"> <layout class="org.apache.log4j.PatternLayout"> <param name="ConversionPattern" value="%d %p %c
com.foo.*
的消息,而不想记录来自我正在使用的com.bar.*
以下是我所做的:
<appender name="console" class="org.apache.log4j.ConsoleAppender">
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p %c - %m%n" />
</layout>
</appender>
<appender name="bar" class="org.apache.log4j.FileAppender">
<param name="File" value="logs/bar.log"/>
<layout class="org.apache.log4j.PatternLayout">
<param name="ConversionPattern" value="%d %p %c - %m%n" />
</layout>
</appender>
<logger name="com.foo">
<level value="ALL" />
<appender-ref ref="console"/>
</logger>
<logger name="com.bar">
<level value="ALL" />
<appender-ref ref="bar"/>
</logger>
<root>
<level value="ALL" />
<appender-ref ref="console" />
<appender-ref ref="bar" />
</root>
问题是控制台中仍然显示来自com.bar.*
的日志消息
谢谢。如果您只想将com.foo登录到控制台,那么我认为您可以从根目录中删除console appender引用以获得所需内容
相反,如果您只想阻止com.bar登录到控制台,那么我认为这会起作用:
<logger name="com.foo">
<level value="ALL" />
</logger>
<logger name="com.bar" additivity="false">
<level value="ALL" />
<appender-ref ref="bar"/>
</logger>
. 如果您只想将com.foo登录到控制台,那么我认为您可以从根目录中删除控制台appender引用,以获得所需的内容
相反,如果您只想阻止com.bar登录到控制台,那么我认为这会起作用:
<logger name="com.foo">
<level value="ALL" />
</logger>
<logger name="com.bar" additivity="false">
<level value="ALL" />
<appender-ref ref="bar"/>
</logger>
. 您始终可以设置com.bar的级别。*若要出错您始终可以设置com.bar的级别。*若要出错我按照您的建议做了,但我一直在控制台中看到com.bar的日志。我可能误解了您最初的要求。我修改了我的答案。希望有帮助。是的,我只想在控制台上登录com.foo。我已从根目录中删除了console appender,但来自com.bar的消息仍显示在控制台中。您是否尝试将“com.bar”的日志级别临时设置为“无”?如果您这样做并且仍然看到消息,那么您就不会加载您认为是的log4j配置。我已经做过很多次了。否则,我建议使用最新的配置XML更新您的问题。这个问题通过另一个SO问题得到解决:我按照您的建议做了,但我一直在控制台中看到com.bar的日志。我可能误解了您最初的要求。我修改了我的答案。希望有帮助。是的,我只想在控制台上登录com.foo。我已从根目录中删除了console appender,但来自com.bar的消息仍显示在控制台中。您是否尝试将“com.bar”的日志级别临时设置为“无”?如果您这样做并且仍然看到消息,那么您就不会加载您认为是的log4j配置。我已经做过很多次了。否则,我建议使用最新的配置XML更新您的问题。此问题已通过另一个SO问题解决: