如何检查是否加载了log4j.properties?

时间:2014-08-03 14:58:39

标签: java eclipse logging log4j

我在log4j.properties文件中使用log4j(编译组slf4j,运行时组logback)和配置。

我认为我使用此选项正确配置了

log4j.rootLogger=INFO, stdout, file

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=%-4r [%t] %-5p %c %x - %m%n
log4j.appender.stdout.threshold=info

log4j.appender.file=org.apache.log4j.RollingFileAppender
log4j.appender.file.File=/home/user/logging.log
log4j.appender.file.MaxFileSize=5MB
log4j.appender.file.MaxBackupIndex=20
log4j.appender.file.layout=org.apache.log4j.PatternLayout
log4j.appender.file.layout.ConversionPattern=%-5p [%d{dd.MM.yy HH:mm:ss}] %C{1} - %m [thread: %t]\n
log4j.appender.file.threshold=info

但是当我运行像

这样的调试消息时
logger.debug("foo")

我在Console中看到的输出与我的模式不匹配。

下一个问题是文件中没有任何内容(/home/user/logging.log),所以我认为我的属性文件没有加载,也不知道如何修复它。

我将我的log4j.properties文件放在我的eclipse项目的根级别,在资源(src / main / resources)中,但仍然没有改变。我在classpath中正确地使用了我的Project文件夹。

编辑:问题是我使用Logbackhttp://logback.qos.ch/)作为我的运行时记录程序,但此库使用logback.xml配置文件,而不是log4j.propertiesorg.apache.log4j库。

1 个答案:

答案 0 :(得分:3)

根据日志记录级别INFO< DEBUG这就是为什么logger.debug("foo")不会被记录的原因。

这是最具特定于最低

的订单的日志记录级别
DEBUG > INFO > WARN > ERROR > FATAL

如果启用INFO,则还会启用其下方的日志记录级别。

尝试

log4j.rootLogger=DEBUG, stdout, file
...
log4j.appender.stdout.threshold=debug
...
log4j.appender.file.threshold=debug

enter image description here