我在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文件夹。
编辑:问题是我使用Logback
(http://logback.qos.ch/)作为我的运行时记录程序,但此库使用logback.xml
配置文件,而不是log4j.properties
与org.apache.log4j
库。
答案 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