为了账号安全,请及时绑定邮箱和手机立即绑定

相对于 jar 目录的 Spring Boot 日志文件不是启动目录

相对于 jar 目录的 Spring Boot 日志文件不是启动目录

慕勒3428872 2022-07-14 09:43:23
在我的 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/


查看完整回答
反对 回复 2022-07-14
?
扬帆大鱼

TA贡献1799条经验 获得超9个赞

您必须提前知道 jarfile 的位置。但是,是的,区别在于绝对路径和相对路径。


Using.表示您要从我们的控制台窗口打开的位置开始。这是相对于您在终端中的位置的路径。


使用 / 表示您要从驱动器的根目录开始。现在,显然您不想将文件存储在驱动器的根目录中。但是假设我在文件夹中有我的 jar:/app/dir/app.jar那么配置就像说一样简单:


#application.yml

logging:

  file: /app/dir/logs/app.log


查看完整回答
反对 回复 2022-07-14
  • 2 回答
  • 0 关注
  • 131 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信