如何使用 log4j.properties 为子包设置不同的记录器

How to have different logger for sub package using log4j.properties

log4j.rootLogger=WARN, A1
log4j.appender.A1=org.apache.log4j.ConsoleAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=[%X{username} %d %-5p %F:%L %M()] %m%n
log4j.appender.A1.threshold=INFO
log4j.logger.com.mycompany=INFO
log4j.logger.org.apache.jsp=INFO
log4j.logger.com.mycompany.calculation.rate.AprCalculation=DEBUG

所以在上面的例子中,我希望 com.mycompany 中的所有 class 都处于 INFO 模式,但是任何属于 AprCalculation class 的部分都处于 DEBUG 模式。

不知何故一切都只在信息模式下记录。

我的 tomcat 中没有任何 log4j.properties。

找到问题了,问题出在门槛上。

log4j.appender.A1.threshold=INFO

需要

 log4j.appender.A1.threshold=TRACE