我们如何指定log4j在尝试查找其xml配置文件时必须查看?
看来默认情况下,log4j会查看类文件夹的根目录,我可以说使用调试log4j功能并从IDE运行我的应用程序.
但是,我的jar中没有任何类文件夹了.log4j.xml文件位于jar的根目录下.
我已经尝试设置选项-Dlog4j.configuration = log4j.xml但它不起作用.
以下是我的应用程序的全局结构:
Kel*_*nch 34
它使用CLASSPATH找到log4j.xml.如果log4j找不到任何配置文件,它将向控制台发送错误.如果您没有看到任何此类错误,则可能是它找到的配置文件可能不是您正在编辑的配置文件.有一个命令行选项可强制Log4J报告它正在使用的配置文件的路径.
来自http://wiki.apache.org/logging-log4j/Log4jConfigurationHelp
如果你使用"-Dlog4j.debug"运行,那么log4j将打印出信息到标准输出,告诉它如何尝试自我配置.仔细查看它会告诉您它在哪里查找配置文件.
rws*_*wst 20
假设您的log4j配置在源树之外.如果找不到您的配置文件,请帮助:
-Dlog4j.configuration=file:///your/path/log4j.xml
Run Code Online (Sandbox Code Playgroud)
请注意限定符文件:///.没有它就行不通.
我没有任何错误
所以log4j找到你的配置,否则你会得到:
log4j:WARN找不到logger()的appender.
log4j:WARN请正确初始化log4j系统.
也:
日志刚刚打印在控制台上
这意味着您可能需要定义文件追加器,如FileAppender或RollingFileAppender.简短介绍中的"配置"部分有几个例子.
小智 5
可能这是一个很老的问题,但对我来说答案在这里 https://logging.apache.org/log4j/2.x/manual/configuration.html
根据上面的链接,Apache 日志在类路径中按特定顺序搜索 log4j2.xml 文件,如下所示