如何在使用lombok日志的Spring Boot 中使用log4j2.xml中的系统属性变量?

zazmityj  于 2022-11-05  发布在  Spring
关注(0)|答案(1)|浏览(156)

我有一个系统属性为log_prefix的CommandLineRunner Sping Boot 应用程序。
我目前正在使用log24j.xml来设置日志配置。它从log24j.xml中的<properites>标记中获取文件名等。是否有办法将日志文件名更改为log_prefix_LogFileName?
我的应用程序. class

@SpringBootApplication
public class Application implements CommandLineRunner {
    static Logger log = Logger.getLogger(Application.class.getName());
    public static void main(String[] args) {
        System.setProperty("log_prefix",args[0]);// Tried hardcoding a string value
        SpringApplication springApplication = new SpringApplication(Application.class);
        springApplication.run(args);
    }

我尝试在Application.class中设置runID,并在log42j.xml中使用${log_prefix},但不起作用。
Pom.xml log4j2依赖项。

<log4j2.version>2.15.0</log4j2.version>

我在类中使用@Slf4j lombok注解

import lombok.extern.slf4j.Slf4j;
@Slf4j
lhcgjxsq

lhcgjxsq1#

正如Piotr P Karwaz指出的,我的日志配置文件有${log_prefix},要在spring Boot 日志配置log4j2.xml文件中获取系统属性,我们需要在大括号中为属性名称添加前缀sys:${sys:log_prefix}修复了这个问题。
注意这是特定于Sping Boot 的,对于普通的java应用程序,您可以参考this answer

相关问题