java - 每个类的 Log4j,如何确定优先级?

标签 java log4j

我正在尝试使用 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 被发现的顺序:

  1. WEB-INF/类
  2. WEB-INF/lib 中的任何 JAR
  3. common/classes(在tomcat目录下)
  4. 您放入 common/endorsed 的任何 JAR
  5. 您放入 common/lib 的任何 JAR
  6. 共享/类(class)
  7. 您放入 shared/lib 的任何 JAR

发现将在找到第一个文件时停止。

关于java - 每个类的 Log4j,如何确定优先级?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1460740/

相关文章:

java - 单向和双向 JPA 和 Hibernate 关联有什么区别?

java - 无法从 vaadin 7 中的请求获取用户名

java - Servlet 发送旧版本的实体 (JPA)

java - log4j:记录一个包,但不包括它的子包

java - Log4j 日志配置

java - 将 HttpServletResponse 转换为 json

java - 将单个字节与字节数组进行比较

java - 使用 jmock 模拟 Logger.getLogger()

java - Spring ExceptionHandler 日志记录不起作用

java - 覆盖 log4j.properties