【发布时间】:2019-07-21 11:43:16
【问题描述】:
在我的 Spring Boot 配置文件中,我可以指定一个相对于 Spring Boot jar 的日志文件位置,而不是相对于启动 jar 的目录吗?
例子:
#application.yml
logging:
file: ./logs/app.log
目录:
- /app/dir/app.jar
- /随机/目录
开始:
cd /random/dir
java -jar /app/dir/app.jar
结果:
- /random/dir/logs/app.log
期望:
- /app/dir/logs/app.log
附加信息: jar 将在不同的操作系统上运行。所以 jar 路径可能类似于:
- /app/dir/app.jar
- C:\app\dir\app.jar
在运行时,我可以计算出 jar/install 目录是什么。是否有允许我在启动后设置 logging.file 位置的 Java 解决方案?还是此时记录器已经初始化?
完整的解决方案:基于@satyesht
#application.yml
app:
log:
#Set a default directory in case a user "double clicks" the jar to launch it.
dir: ./logs
file: app.log
logging:
file: ${app.log.dir}/${app.log.file}
开始:
cd /random/dir
java -Dapp.log.dir=/app/dir/logs -jar /app/dir/app.jar
【问题讨论】:
标签: java spring spring-boot