1

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

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

我理想的解决方案是

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

1 回答 1

1

您可以利用弹簧配置文件并根据-Dspring.profile.active=some_profile系统属性或环境SPRING_PROFILES_ACTIVE=some_profile变量选择配置。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
于 2018-05-14T23:36:42.480 回答