仅指定一些包以具有调试输出

我想记录我的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但它正在调试hibernate和spring时,它可以工作。

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

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

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

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

 log4j.rootCategory=ERROR, 0 

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

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

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

顺便说一下,这不是一个hibernate问题,这与您配置记录器的方式有关。