如何为特定的类和包设置日志级别?

问题描述:

这里是我的log4j的东西,这是的.properties文件如何为特定的类和包设置日志级别?

[email protected][email protected], stdout, rollingFile, smtp 
##[email protected][email protected] 
logging.appender.stdout=org.apache.log4j.ConsoleAppender 
logging.appender.stdout.layout=org.apache.log4j.PatternLayout 
logging.appender.stdout.layout.ConversionPattern=%d %-5p %c [%M:%L] %m%n 

@ DEBUG_LEVEL @这是在单独的“appenv.bash”文件中设置,针对不同的环境中,它的设置不同。在生产中它被设置为ERROR,我想在特定的类中使用INFO。由于此INFO,DEBUG将不会显示在生产环境中。

如何在一个包中将一个特定类的日志级别设置为INFO?

+0

@Luiggi - 感谢编辑我的标题 – user1771540 2013-05-15 21:53:28

您在这里声明一个记录器rootLogger。它是所有记录器的“父”,所以如果你想要一个细粒度的配置,你必须声明一个更详细的记录器。

下面的行创建一个记录所有包下com.foo.bar类: log4j.logger.com.foo = WARN,标准输出

你的类必须实例化的记录是这样的: 记录器记录器= Logger.getLogger(MyClass.class.getCanonicalName());

但你可以在这里放任何字符串,例如: log4j.logger.onlyoneclasswilluseit = WARN,标准输出

并获得这样说: 记录器记录= Logger.getLogger( “onlyoneclasswilluseit”);

+0

感谢您的回复,但我们现在在我的项目中使用它。我只是使用错误级别和我的同事是保持splunk工具的限制。 SPLUNK将把警报发送到特定的分发电子邮件列表。它会从我们的应用程序日志中选择错误日志。如果我需要下一次我将与您的想法和更新在这里。 – user1771540 2013-05-15 21:52:48