根据 OS 在 spring boot application.properties/.yml 中设置日志文件位置
Set logfile location based on OS in spring boot application.properties/.yml
我想知道是否有一种简洁的方法可以根据 OS 仅使用 Spring 引导中的 application.properties 文件来设置日志记录位置?
例如,是否可以在 ${os.name} 上使用正则表达式匹配器,或者我是否只需要继续创建一个 groovy 脚本或其他东西?
我理想的解决方案是
logging:
file: ${os.name}.test(/*window*/gi) ? C:/ProgramData/Logs/ : /var/log/
您可以利用 spring profiles 并根据 -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
我想知道是否有一种简洁的方法可以根据 OS 仅使用 Spring 引导中的 application.properties 文件来设置日志记录位置?
例如,是否可以在 ${os.name} 上使用正则表达式匹配器,或者我是否只需要继续创建一个 groovy 脚本或其他东西?
我理想的解决方案是
logging:
file: ${os.name}.test(/*window*/gi) ? C:/ProgramData/Logs/ : /var/log/
您可以利用 spring profiles 并根据 -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