在spring boot application.properties/.yml中基于OS设置日志文件位置

时间:2018-05-14 10:23:12

标签: spring-boot logging application.properties

我想知道在Spring Boot中使用application.properties文件是否有一种基于操作系统设置日志记录位置的简洁方法?

例如,是否可以在$ {os.name}上使用正则表达式匹配器,或者我只需要继续创建一个groovy脚本或其他东西?

我理想的解决方案就像

logging:
  file:  ${os.name}.test(/*window*/gi) ? C:/ProgramData/Logs/ : /var/log/

1 个答案:

答案 0 :(得分:1)

您可以利用spring profiles并根据-Dspring.profile.active=some_profile系统属性或SPRING_PROFILES_ACTIVE=some_profile env变量选择配置。 Yaml文件可能是

# a safe default relative to app root
logging:
     file: logs 

----

spring:
    profiles: nix
logging:
     file: /var/log/myapp

----


spring:
    profiles: win
logging:
     file: C:/ProgramData/Logs/

应用程序执行

java -Dspring.profile.active=nix <more opts> MyAppMain

或者:

SPRING_PROFILES_ACTIVE=nix java <more opts> MyAppMAin