仅指定一些包以获得调试输出

时间:2011-07-22 21:39:12

标签: java log4j

我想记录我的Web应用程序的一些行为,它也实现了hibernate,spring等。当我试图从apache实现log4j logger时,我遇到了一些麻烦。

当我打开记录器时,它也在调试hibernate和spring,这是我不想要的。我尝试配置属性文件以指定我的项目的包但它不起作用。

这是我的属性文件代码:

log4j.rootCategory=ERROR, O
log4j.category.com.my.package= DEBUG, FILE, O
log4j.appender.FILE=org.apache.log4j.RollingFileAppender
log4j.appender.FILE.File=log/logger.log
log4j.appender.O=org.apache.log4j.ConsoleAppender
.... and some layout

当我切换rootCategory = DEBUG时它会起作用,但它正在调试休眠和弹簧,就像我说的那样。

2 个答案:

答案 0 :(得分:11)

是的,您必须指定每个包的日志级别:

log4j.logger.org.hibernate=info
log4j.logger.org.springframework=info
log4j.logger.com.yourapplication=debug

请注意,您应该从类别(过时)切换到记录器。所以log4j.rootLogger=...

答案 1 :(得分:2)

您需要知道实际编写内容的记录器的名称...最简单的方法是将根类别设置为错误:

log4j.rootCategory=ERROR, 0

然后相应地设置日志级别:

log4j.com.your.package=DEBUG...

rootCategory设置为DEBUG会将所有内容变为DEBUG,除非您特别配置了记录器。

B.T.W,这不是一个休眠问题,这与您配置记录器的方式有关。