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

Tim*_*thy 5 log4j2 spring-boot

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

在 log4j2.xml 我有作为属性之一

<Property name="LOG_FILE">${LOG-DIR}/test.log</Property>
Run Code Online (Sandbox Code Playgroud)

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

logging.file=LOG_FILE 
Run Code Online (Sandbox Code Playgroud)

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

logging.level.org.springframework.web=DEBUG
Run Code Online (Sandbox Code Playgroud)

我的 application.properties 文件中定义的这些与日志相关的属性都没有用于构建相应的日志文件。同样,当我简单地单独使用 log4j2.xml 时,它工作正常,但希望利用 application.properties 的便利性进行日志记录配置。

非常感谢对我做错了什么的任何见解。谢谢你

Ami*_*mar 9

如果我理解你的问题的权利,你在看物业替代的功能log4j2

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

log.file.path=/myDir/logpath 
Run Code Online (Sandbox Code Playgroud)

然后属性(一个或多个)查找定义Propertylog4j2.xml

<Configuration>  
  <Properties>  
      <property name="LOG_FILE">${bundle:application:log.file.path}</property> 
  </Properties>  
Run Code Online (Sandbox Code Playgroud)

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

  • 但是如果我在 YAML 配置中定义了logging.file.path 会怎么样? (2认同)