我想知道在Spring Boot中使用application.properties文件是否有一种基于操作系统设置日志记录位置的简洁方法?
例如,是否可以在$ {os.name}上使用正则表达式匹配器,或者我只需要继续创建一个groovy脚本或其他东西?
我理想的解决方案就像
logging:
file: ${os.name}.test(/*window*/gi) ? C:/ProgramData/Logs/ : /var/log/
答案 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