【问题标题】:SLF4J-Log4j logger not loggingSLF4J-Log4j 记录器不记录
【发布时间】:2012-10-08 20:12:46
【问题描述】:

我是第一次尝试使用 SLF4J-Log4j。在每个 Java 类中,我都定义了一个这样的记录器:

private org.slf4j.Logger logger = org.slf4j.LoggerFactory.getLogger(<TheClass>.class);

(当然,我确保 slf4-log4j12-1.6.4.jar JAR 在类路径中!)

但每当我使用记录器时,例如logger.debug("Something interesting happened");logger.error("An error occurred");,我在日志文件中都看不到它们的输出。但是,没有异常发生,应用程序(实际上是部署到 Tomcat 的 WAR)运行良好。

这是项目中包含的log4j.properties文件:

# Set the root logger to DEBUG.
log4j.rootLogger=DEBUG

# MonitorLog - used to log messages in the Monitor.log file.
log4j.appender.MonitorAppender=org.apache.log4j.FileAppender
log4j.appender.MonitorAppender.File=${catalina.base}/logs/MyAppMonitor.log
log4j.appender.MonitorAppender.layout=org.apache.log4j.PatternLayout
log4j.appender.MonitorAppender.layout.ConversionPattern= %-4r [%t] %-5p %c %x - %m%n

# Use the MonitorAppender to log all messages.
log4j.logger.*=DEBUG,MonitorAppender
org.quartz.impl.StdSchedulerFactory=DEBUG,MonitorAppender

此 WAR 使用 Quartz 来 cron 执行一些作业,这就是您看到最后一个条目的原因。

当我检查 Tomcat 的 logs/ 目录时,我看到 MyAppMonitor.log 已创建,但其中没有任何内容(0 字节)。我也扫描了所有典型的 catalina.out、catalina- 和 localhost- 日志,但我的日志语句都没有出现。

我在想:

  1. 我没有正确配置log4j.properties,或者
  2. 我没有正确配置 slf4j-log4j,或者
  3. 这是一个类路径问题,也许 WAR 找不到 log4j.properties(尽管我想我会看到错误或警告),或者
  4. 我没有正确使用(API 本身)SLF4J,或者
  5. 我实际上从未创建过名为MonitorAppender 的东西,所以我想知道这是否是问题所在;我只是按照我在网上看到的一个例子

谁能发现我哪里出错了,或者帮我解决这个问题?提前致谢!

【问题讨论】:

  • 检查类路径中没有 logback jar,否则 slf4j 将尝试使用 logback。
  • @Augusto - 感谢您的建议 (+1) 但不,这些 JAR 不在类路径中。
  • SLF4J 不会优先考虑一种实现。它将警告多个绑定。另见slf4j.org/codes.html#multiple_bindings
  • 感谢@Ceki (+1) 的输入 - 你可能是世界上最有资格问这个问题的人 - 这里的任何东西在你看来是否配置错误?

标签: java tomcat logging log4j slf4j


【解决方案1】:

您的log4j.properties 配置文件中有许多错误。尝试像下面这样简单的东西。

log4j.debug=true
log4j.rootLogger=DEBUG, CON

log4j.appender.CON=org.apache.log4j.ConsoleAppender
log4j.appender.CON.layout=org.apache.log4j.PatternLayout
log4j.appender.CON.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n

至于您问题中的配置文件,根记录器没有附加附加程序。此外,行

log4j.logger.*=DEBUG,MonitorAppender

无效,因为不支持“*”。

【讨论】:

  • 感谢@Ceki (+1) - 谁能帮助找出这些错误可能是什么?
猜你喜欢
  • 1970-01-01
  • 2018-07-10
  • 2021-01-22
  • 2021-10-27
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多