spring-boot application.properties 文件可以用 log4j2.xml 配置启动吗?

Can spring-boot application.properties file woking with log4j2.xml configuration?

我想在 application.properties 中定义高级文件日志记录,以便于利用我的 log4j2.xml 文件配置。就其本身而言,我的 log4j2 配置运行良好,但我希望控制 application.properties 文件中的日志记录级别以及日志文件和路径信息。我在应用程序的 pom 文件中有 spring-boot-starter-log4j2 依赖项。

在log4j2.xml中我有一个属性

<Property name="LOG_FILE">${LOG-DIR}/test.log</Property>

,其中 LOG-DIR 在同一文件的另一个(前一个)属性 中定义。在我的 application.properties 文件中,我有

logging.file=LOG_FILE 

作为属性,加上几个级别的属性,例如

logging.level.org.springframework.web=DEBUG
我的 application.properties 文件中定义的这些与日志相关的属性中的

none 正在构建相应的日志文件。同样,当我单独使用 log4j2.xml 时它工作正常,但我想利用 application.properties 的便利性进行日志记录配置。

非常感谢任何对我做错的见解。谢谢

如果我没有理解你的问题,那么你正在查看 log4j2Property Substitution 功能。

您可以在 application.properties 文件中定义日志记录 属性,如下所示:

log.file.path=/myDir/logpath 

然后 属性(s) 查找定义为 log4j2.xml 中的 Property:

<Configuration>  
  <Properties>  
      <property name="LOG_FILE">${bundle:application:log.file.path}</property> 
  </Properties>  

现在所有 属性 都可以在同一个 log4j2.xml 中引用 ${propertyName} 符号,最终指向 application.properties 文件中的值。