我有一个系统属性为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
1条答案
按热度按时间lhcgjxsq1#
正如Piotr P Karwaz指出的,我的日志配置文件有
${log_prefix}
,要在spring Boot 日志配置log4j2.xml文件中获取系统属性,我们需要在大括号中为属性名称添加前缀sys:
。${sys:log_prefix}
修复了这个问题。注意这是特定于Sping Boot 的,对于普通的java应用程序,您可以参考this answer