这些消息是棘手的,足以让人们创建这个以使其更清晰:https://issues.apache.org/bugzilla/show_bug.cgi?id=25747
它们的棘手之处在于,如果Log4j找不到其(或)文件,则会写入警告,但如果文件很好且花哨,但从配置的角度来看其内容不完整,则会写入警告。log4j.properties
log4j.xml
以下段落取自此处:http://svn.apache.org/repos/asf/logging/log4j/tags/v1_2_9/docs/TROUBLESHOOT.html
使用追加器将日志记录输出写入目标。如果没有追加器附加到类别或其任何祖先,则在尝试记录时将收到以下消息:
log4j: No appenders could be found for category (some.category.name).
log4j: Please initialize the log4j system properly.
Log4j 没有默认的日志记录目标。用户有责任确保所有类别都可以继承追加器。这可以通过将追加器附加到根类别来轻松实现。
您可以在log4j文档中找到有关如何配置根记录器()的信息,基本上可以在文件开头添加像这样简单的东西:log4j.rootLogger
log4j.rootLogger=debug, stdout
log4j.appender.stdout=org.apache.log4j.ConsoleAppender
log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n
这应该会清除您在启动时收到的那些 WARN 消息(确保您还没有一个名为的追加器;还要注意您为根记录器提供的级别,这将非常详细,并且应用程序中的每个库都将开始将内容写入控制台)。stdout
debug
至于/,我建议你把这个文件放进去,因为重要的是要让它公开用于不同的调整(激活/停用日志,更改日志级别等)。您也可以将其放在类路径的 JAR 中(如您在注释中指定的那样),但它将被包含在存档中(希望在存档中的正确位置),并且不会像在 .log4j.properties
log4j.xml
/WEB-INF/classes
/WEB-INF/classes