在log4j2.xml中使用Spring Boot应用程序属性

安吉·古普塔(Ankit Gupta)

我正在基于Spring Boot的Web应用程序上工作,并希望使用log4j2作为记录器实现。
使用log4j2-spring.xml文件中定义的日志记录配置,一切正常

无法正常工作:我想在log4j2-spring.xml文件中使用属性占位符,该占位符应从用于配置Spring Bootapplication.yml文件中定义的属性中解析

这可能吗?如果是,怎么办?

债券-Java债券

无法log4j2-spring.xml通过via属性占位符直接替换属性,因为它不在Spring的范围之内,仅用于配置目的。log4j2-spring.xml

但是,您可以利用此处Log4j2概述的属性替换的即用型功能

步骤1-log4j2-spring.xml下面指定属性名称及其变量

<Configuration status="warn">
    <Properties>
        <Property name="someProp">${bundle:test:someKey}</Property>
    </Properties> 
    <!--other configs -->
</Configuration>

第2步-在日志配置中使用上面定义的属性,例如后缀来记录文件名

<Appenders>
    <File name="file" fileName="/path/to/logs/app-${someProp}.log">
        <PatternLayout pattern="%d{yyyy-MM-dd HH:mm:ss.SSS} %-5p %-40c{1.} - %m%n"/>
    </File>
</Appenders>

第3步-创建一个捆绑包即属性文件)以保存属性值,例如test.properties

# properties for log4j2
someKey=someValue
someKey1=someValue1

在您的情况下,该文件将包含您希望在log4j2配置中使用的yaml中的值。如果这些属性也可以在应用程序中使用,它们将在yaml中复制,并且捆绑包(即属性文件)应该是可以接受的折衷方案,因为spring不能将它们注入log4j2配置中。

如果需要更多信息,请在评论中告知。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何在Spring Boot应用程序中正确使用log4j2

Spring mcvc应用程序未获取Log4j2属性

使用log4j2的Spring Boot。配置log4j2 Spring查找

在Log4J2 YAML中使用属性

如何为Spring Boot2应用程序提供特定于env的log4j2配置

在Spring Boot应用中使用log4j2进行日志记录

在 log4j2 中访问 spring 配置文件以获取 spring boot 应用程序

使用log4j-web.jar在Web应用程序中配置Log4j2

带有Servlet 3.0的Spring Web应用程序中的Log4j2

Spring Boot上的Log4j2

Spring Boot中的Log4j2问题与配置

log4j2 xml无法识别程序参数

Spring Boot 在 Eclipse 中使用 log4j2 - NoClassDefFoundError Logback

如何在Spring Boot中使用Log4J2复合配置

无法在Java 8 Spring应用程序中使用Log4j2 Slf4j获取文件登录信息

如何使用 Spring Boot 设置 log4j2 自定义附加程序?

在Spring Boot应用程序中未针对冬眠和春季过滤Log4j2日志级别

带有log4j2的Spring Boot 2.1.x应用程序似乎只启动了两次依赖项

如何通过从 spring-boot 中的 bootstrap.yml 获取名称来在 log4j2 中记录应用程序名称?

log4j2 spring boot 查找无法从 application.properties 读取属性

如何使用外部属性文件在Springboot中使用log4j2?

使用Spring Data JPA / Spring Boot / Log4j2来Maven多个模块

使用log4j2进行Spring-Boot日志记录?

使用 Log4j2 进行 Spring Boot 日志记录

spring boot 如何通过 ?? 解决 PID 使用 log4j2

使用log4j2在Spring Boot中自定义日志级别

如何使用Spring Boot 1.3.6.RELEASE使log4j2在环境中可配置

Spring Boot使用log4j2发送邮件

使用Spring Boot在log4j2中没有为组件属性提供类型属性