我已经把log4j放到了我的buildpath中,但是当我运行我的应用程序时,我得到了以下消息:

log4j:WARN No appenders could be found for logger (dao.hsqlmanager).
log4j:WARN Please initialize the log4j system properly.
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info.

这些警告是什么意思?这里的阑尾是什么?


当前回答

得到同样的错误。下面是导致错误信息的问题:

在配置log4j之前,我创建了一些使用Logger的对象:

Logger.getLogger(Lang.class.getName()).debug("Loading language: " + filename);

解决方案: 在main方法的开头配置log4j:

PropertyConfigurator.configure(xmlLog4JConfigFile); 
// or BasicConfigurator.configure(); if you dont have a config file

其他回答

我的Eclipse安装找不到log4j。属性,即使该文件位于src/test/resources。

原因是Eclipse(或m2e连接器)没有将内容从src/test/resources复制到预期的输出文件夹target/test-classes -根本原因是在Java Build Path -> Source选项卡-> Build Path -> src/test/resources下的项目属性中,有一个Excluded: **条目。我去掉了那个被排除的元素。

或者,我可以手动复制src/test/resources/log4j。目标/test-classes/log4j.properties中的属性。

当Log4J Java代码在程序中搜索以创建第一行日志时,Log4J将显示此警告消息。

此时Log4j做了两件事

它搜索log4j。属性文件 它搜索实例化log4j.properties中定义的appender

如果log4J没有找到log4J。属性文件或在log4j中声明的appender。在log4j的其他地方没有定义Rootlogger。系统弹出“属性”文件中的警告信息。

注意:“属性”文件内容必须正确。

以下内容不正确

log4j.rootLogger=file

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m%n
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=false

因为文件appender在log4j中是以小写形式声明的。并在log4j中定义。使用大写!

正确的文件应该是

log4j.rootLogger=FILE

log4j.appender.FILE=org.apache.log4j.FileAppender
log4j.appender.FILE.File=c:/Trace/MsgStackLogging.log
log4j.appender.FILE.layout=org.apache.log4j.PatternLayout
log4j.appender.FILE.layout.ConversionPattern=%m%n
log4j.appender.FILE.ImmediateFlush=true
log4j.appender.FILE.Threshold=debug
log4j.appender.FILE.Append=false

如果使用MAVEN,则必须放置log4j。src/main/resources中的properties文件并启动MAVEN构建。

Log4j。然后将属性文件复制到目标/类文件夹中。

Log4J使用Log4J。属性文件,它发现在目标/类!

当我试图运行单元测试时,在IntelliJ中得到这个错误消息。我同时打开了Eclipse和IntelliJ,这可能导致了这个问题。在我关闭两个IDE并运行maven命令行构建后,错误就消失了。

我也有这个问题。 我只是忘记在IntelliJ IDEA中标记资源目录

右键单击您的目录 将目录标记为 资源根

如果您正在使用Eclipse,并且在之前一切正常工作之后出现了这个问题,请尝试转到Project - Clean - Clean。