在我的 Spring Boot 配置文件中,我可以指定相对于 Spring Boot jar 的日志文件位置,而不是相对于启动 jar 的目录吗?例子:#application.ymllogging: file: ./logs/app.log目录:/app/dir/app.jar/随机/目录开始:cd /random/dirjava -jar /app/dir/app.jar结果:/random/dir/logs/app.log期望:/app/dir/logs/app.log附加信息:jar 将在不同的操作系统上运行。所以 jar 路径可能类似于:/app/dir/app.jarC:\app\dir\app.jar在运行时,我可以计算出 jar/install 目录是什么。是否有 Java 解决方案允许我在启动后设置 logging.file 位置?或者当时记录器是否已经初始化?完整的解决方案:基于@satyesht#application.ymlapp: log: #Set a default directory in case a user "double clicks" the jar to launch it. dir: ./logs file: app.loglogging: file: ${app.log.dir}/${app.log.file}开始:cd /random/dirjava -Dapp.log.dir=/app/dir/logs -jar /app/dir/app.jar
2 回答
噜噜哒
TA贡献1784条经验 获得超7个赞
一种简单的方法是将日志目录作为系统属性传递,如下所示。
#application.yml
logging:
file: ${LOGDIR}/logs/app.log
在运行您的应用程序时,您可以将 LOGDIR 系统属性指定为 VM 参数
cd /random/dir
java -jar /app/dir/app.jar -DLOGDIR=/app/dir/
扬帆大鱼
TA贡献1799条经验 获得超9个赞
您必须提前知道 jarfile 的位置。但是,是的,区别在于绝对路径和相对路径。
Using.表示您要从我们的控制台窗口打开的位置开始。这是相对于您在终端中的位置的路径。
使用 / 表示您要从驱动器的根目录开始。现在,显然您不想将文件存储在驱动器的根目录中。但是假设我在文件夹中有我的 jar:/app/dir/app.jar那么配置就像说一样简单:
#application.yml
logging:
file: /app/dir/logs/app.log
添加回答
举报
0/150
提交
取消