【问题标题】:Maven project log4j not workingMaven项目log4j不工作
【发布时间】:2016-06-17 15:29:21
【问题描述】:

我有一个简单的 maven 项目并试图实现 log4j。

部署到本地tomcat。在我有 logger.debug() 的 Eclipse 控制台中没有打印任何内容。

我错过了什么吗?

这是我的结构:

pom.xml:

<!-- http://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency> 

类:

final static Logger logger = Logger.getLogger(myclass.class);

.properties 文件

# Root logger option
log4j.rootLogger=INFO, stdout
log4j.rootLogger=DEBUG, stdout
log4j.rootLogger=ERROR, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p     %c{1}:%L - %m%n

【问题讨论】:

  • 为什么要定义几个 rootLogger 属性?我的猜测是,将 rootLogger 设置为 ERROR 级别的最后一个设置会覆盖前两个设置。您应该只在中间有 DEBUG 行。
  • 如果我也想要这些怎么办?
  • 查看我的答案以获得解释

标签: java maven log4j


【解决方案1】:

只需删除多余的 rootLogger 声明:

# Root logger option
log4j.rootLogger=DEBUG, stdout
# Direct log messages to stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.Target=System.out
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %-5p     %c{1}:%L - %m%n

日志记录级别包括“高于”它们的级别。例如,将日志记录级别设置为 DEBUG 将自动包含 DEBUG、INFO、WARN、ERROR 和 FATAL 消息。无需为每个级别声明日志记录级别。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-03-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-06-30
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多