【发布时间】:2015-04-05 14:58:04
【问题描述】:
Log4j2 通过根类路径中的 log4j2.xml 配置文件与 Spring Boot 完美配合,正如文档所述。
但是,当尝试将此文件移动到其他位置时,我无法在启动时将新位置传递给 Spring。来自the documentation:
各种日志系统可以通过包含 类路径上的适当库,并由 在类路径的根目录中提供合适的配置文件, 或 在 Spring Environment 属性指定的位置
logging.config.
我尝试使用 Java 系统属性设置新位置
java -jar -Dlogging.config="classpath:/config/log4j2.xml" target/app.jar
或使用包含相关属性的外部application.properties
logging.config=classpath:/config/log4j2.xml
但我经常收到以下错误消息。
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
【问题讨论】:
-
您能否确认
/config是否在类路径中?如果您使用的是基于 maven 的项目,请将 xml 文件放在src/main/resources下 -
config文件夹(包)在类路径中,它已经包含application.yml,在应用程序中被正确提取并成功使用。 -
能否请您将xml文件放入
src/main/resources并尝试以便我们缩小问题范围? -
如果我将 XML 文件放在正确的位置,即类路径根 (
src/main/java),它可以正常工作。通过将 XML 放在src/main/resources文件夹中,我没有得到我们应该检查的内容。我想要做的就是把 log4j2.xml 文件放在我想要的任何地方。 -
既然你把它放在
src/main/java里面就可以正常工作了,说明配置没有问题。如果您希望它与log4j2.xml的位置无关,则必须确保该文件夹位于类路径中。如果你使用 eclipse,right click on the project -> Build Path -> Configure Build Path设置类路径。
标签: java log4j spring-boot log4j2