我正在使用log4j(编译组slf 4j,运行时组logback),并在www.example.com文件中进行配置log4j.properties。
我认为我使用此选项正确配置了它
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")
我在控制台中看到与我的模式不匹配的输出。
下一个问题是文件(/home/user/logging.log)中没有任何内容,所以我认为我的属性文件没有加载,不知道如何修复它。
我把我的log4j.properties文件放在我的Eclipse项目的根目录下,在resources(src/main/resources)中,但是仍然没有任何改变。我把我的Project文件夹正确地放在类路径中。
**编辑:**问题是我使用Logback
(http://logback.qos.ch/)作为运行时记录器,但此库使用logback.xml
配置文件,而不是使用org.apache.log4j
库的log4j.properties
。
2条答案
按热度按时间w6mmgewl1#
根据日志记录级别
INFO
〈DEBUG
,这就是logger.debug("foo")
不会被记录的原因。这是日志记录级别,按从最特定到最不特定的顺序排列
如果启用了
INFO
,则也将启用低于该级别的日志记录级别。尝试
xsuvu9jc2#
为了回答这个问题
如何检查是否log4j.properties加载了www.example.com?
log4j的内部调试可以通过设置log4j.debug系统属性来启用。在启动过程中,log4j日志显示配置是从哪里加载的以及如何加载的。
例如,
在这里,当在VM参数中添加-Dlog4j.debug时,在启动期间将生成以下控制台日志。
另请参阅:answer到this question的问题有助于找到答案。