在主类中更改Spring引导日志文件

时间:2018-12-19 10:10:04

标签: java spring-boot logback

在主类中获取logging.file值,并将传递的参数附加到该值。如果相同的Spring Boot应用程序需要运行多次,我们将传递一些参数给该应用程序,并基于该参数将创建新的日志文件。有人遇到过这个用例吗?

2 个答案:

答案 0 :(得分:1)

在启动Spring Boot应用程序时只需指定logging.file。无需编码:

$ java -Dlogging.file=file1.log -jar my-app.jar

$ java -Dlogging.file=file2.log -jar my-app.jar

$ java -Dlogging.file=file3.log -jar my-app.jar

如果您真的想用代码来完成,可以在启动Spring Boot之前在main()中完成:

public static void main(String[] args) {
    System.setProperty("logging.file", "file1.log");
    SpringApplication.run(MyApplication.class, args);
}

答案 1 :(得分:0)

Spring Boot使您可以外部化配置。

文档参考:https://docs.spring.io/spring-boot/docs/current/reference/html/boot-features-external-config.html

  

在您的app.jar中,您可以拥有一个application.properties文件,该文件   为“名称”提供合理的默认属性值。在新环境中运行时,可以使用特定的命令行开关启动,该命令行开关将覆盖“名称”。 java -jar app.jar --name="Spring"

如果要覆盖logging.file中的application.properties值,可以使用以下命令:

java -jar app.jar --logging.file=thefileName

修改

如果要附加到application.properties中的日志文件,可以执行以下操作。

application.properties

instance.value=one
logging.file=C:/log/${instance.value}-spring.log

默认日志文件为one-spring.log。 运行命令java -jar app.jar --instance.value=two时,它将用两个${instance.value}

替换/替代two-spring.log