Java 如何检查是否加载了log4j.properties?
我正在使用log4j(编译组slf4j,运行时组logback),并在log4j.properties文件中进行配置 我想我用这个选项正确地配置了它Java 如何检查是否加载了log4j.properties?,java,eclipse,logging,log4j,Java,Eclipse,Logging,Log4j,我正在使用log4j(编译组slf4j,运行时组logback),并在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.log
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项目的根级别的参考资料(src/main/resources)中,但仍然没有任何更改。我的项目文件夹正确地位于类路径中
编辑:问题是我使用
Logback
()作为我的运行时记录器,但是这个库使用Logback.xml
配置文件,而不是log4j.properties
和org.apache.log4j
库。根据日志级别INFO
DEBUG
这就是Logger.DEBUG(“foo”)的原因
将不会被记录
这是按顺序记录的级别,从最特定到最不特定
DEBUG > INFO > WARN > ERROR > FATAL
如果启用了INFO
,则低于它的日志记录级别也将启用
试一试
感谢您的回复,但一切都没有改变。我在Eclipse控制台中看到了所有调试和错误输出,而在文件中没有任何输出。就像我写我的帖子一样。好消息,至少它正在控制台中打印。现在你正朝着正确的方向去解决这个问题。当然我做了,但什么也没发生。我的属性文件似乎没有加载,如果我向其中添加了任何内容,则不会有任何更改。属性文件正在正确拾取。要确认它,请更改
stdout
的模式,并查看它在eclipse控制台中打印的内容。我在Eclipse控制台中看到了所有调试和错误输出,为什么会发生这种情况?属性文件正在正确拾取。问题在于文件日志记录配置。是否在所需位置创建文件?如果不是,则尝试绝对路径。
log4j.rootLogger=DEBUG, stdout, file
...
log4j.appender.stdout.threshold=debug
...
log4j.appender.file.threshold=debug