我正在尝试使用 Log4j 允许每个特定类的调试日志记录,并且我得到了以下内容:
log4j.rootLogger=stdout, daily
log4j.logger.com.mycompany.myapplication.mymodule=DEBUG
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{h:mm:ssa} %5p (%F:%L) - %m%n
log4j.appender.stdout.threshold=warn
log4j.appender.daily=org.apache.log4j.DailyRollingFileAppender
log4j.appender.daily.layout=org.apache.log4j.PatternLayout
log4j.appender.daily.layout.ConversionPattern=%d{h:mm:ssa} %5p (%F:%L) - %m%n
log4j.appender.daily.File=/some/file/path/stuff
log4j.appender.daily.DatePattern=MMdd'.log'
log4j.appender.daily.threshold=info
如果这是作为 tomcat 的一部分的 WEB-INF/classes/log4j.properties 文件应该查看来自 mycompany.myapplication.mymodule
的调试消息或稍后执行条目在文件中覆盖它?(或者我完全错误地更改了每个类的日志记录级别?)
其次,如果 jar 文件中包含 log4j.properties 文件,我在 Tomcat 中的设置是否会覆盖这些文件?
最佳答案
您告诉您的类在 DEBUG 级别记录日志,但告诉附加程序忽略 WARN 和 INFO 下的任何内容,因此您不会看到日志消息。
至于 log4j.properties
被发现的顺序:
- WEB-INF/类
- WEB-INF/lib 中的任何 JAR
- common/classes(在tomcat目录下)
- 您放入 common/endorsed 的任何 JAR
- 您放入 common/lib 的任何 JAR
- 共享/类(class)
- 您放入 shared/lib 的任何 JAR
发现将在找到第一个文件时停止。
关于java - 每个类的 Log4j,如何确定优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460740/