正如文档所述,Log4j2通过log4j2.xml根类路径中的配置文件与Spring Boot配合良好。
log4j2.xml
但是,当尝试将此文件移动到其他位置时,我无法在启动时将新位置传递给Spring。从文档中:
可以通过在类路径中包括适当的库来激活各种日志记录系统,并通过在类路径的根目录中或 在Spring Environment属性指定的位置中logging.config提供适当的配置文件来进一步自定义各种日志记录系统。
logging.config
我尝试使用Java系统属性设置新位置
java -jar -Dlogging.config="classpath:/config/log4j2.xml" target/app.jar
或使用application.properties包含相关属性的外部
application.properties
logging.config=classpath:/config/log4j2.xml
但是,我经常收到以下错误消息。
ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console.
由于在指定的Spring参考文档,该logging.config属性不能被应用程序属性中设置,因为日志已经被初始化后,他们被读取。
解决方案是通过以下方式提供外部日志记录配置的路径:
java -Dlogging.config='/path/to/log4j2.xml' -jar app-current.jar