2012-01-11 132 views
0

我是JavaEE SSH环境的新手,目前我使用log4j作为我的应用程序的日志系统。但问题是,如果我在DEBUG中设置日志输出级别,MyEclipse中有太多的控制台输出,将输出级别切换到WARN会减少消息的数量,但也会丢失一些我感兴趣的信息。所以我的问题是让log4j只输出我正在编辑的Java文件生成的所有日志消息,不输出其他人生成的任何消息。如何控制log4j中的日志控制台输出

回答

3

假设你是一个log4j.properties文件配置log4j的,你可以设置一个特定的类或包到不同的级别是这样的:

log4j.logger.com.foo.MyClass=DEBUG 

更多介绍log4j的东西见http://logging.apache.org/log4j/1.2/manual.html

+0

请记住,如果您确保每个类中的记录器实例都具有与其相关的唯一名称,则此工作。相反,如果你想在不同的类中做你所做的事情,你可以在不同的类中创建具有相同名称的记录器实例(可能在一个类中有超过1个记录器实例) – 2012-01-11 20:06:50

+0

谢谢!真的行 – ZRJ 2012-01-14 15:55:38

2

http://logging.apache.org/log4j/1.2/manual.html

你可以配置你通过Logger.getLogger("org.springframework")创建的每个记录器的日志级别。您必须搜索log4j的配置文件。

示例XML(从http://en.wikipedia.org/wiki/Log4j):

... 
<logger name="org.springframework"> 
    <level value="info"/> 
</logger> 

<!-- 
    everything of spring was set to "info" but for class 
    PropertyEditorRegistrySupport we want "debug" logging 
--> 
<logger name="org.springframework.beans.PropertyEditorRegistrySupport"> 
    <level value="debug"/> 
</logger> 

希望有所帮助。

0

如果您正在unix/linux环境中运行,您可以对日志文件进行尾部和g​​rep查找您正在查找的内容。这比修改log4j配置更加灵活,而且功能更强大

0

我有同样的问题,我的log4j调试日志记录在我的JUnit单元测试(在Eclipse中)中被Spring调试淹没了。我通过将以下内容添加到我的log4j属性文件中来解决这个问题。

log4j.logger.org.springframework=FATAL 
相关问题