如何读取Ubuntu环境变量到SpringBoot程序?



下面是我在Windows的SpringBoot中读取环境变量(日志文件夹的位置)的操作。

  1. 在Windows Server中,我为"log_home"设置了一个系统环境变量。与值和SpringBoot应该用来写日志的目录。

  2. 在SpringBoot的应用程序。属性,我有:

logging.file.name = $ {LOG_HOME}/ws.log

作品太棒了!


但是在Ubuntu Linux 20.04中,同样的方法对我来说根本不起作用。

当WAR文件试图在Ubuntu 20.04上使用类似的技术部署时:

  1. (在。bashrc中):export LOG_HOME =/home/ubuntu/logs
  2. 重新启动(重新加载环境)

当尝试部署WAR文件时,我在Tomcat日志中得到以下错误:

. lang。${LOG_HOME}/ws.log">

所以,Spring似乎没有看到在Ubuntu中设置的环境变量。

我写了一个简单的Java程序,只是为了检查环境变量的值,它们都按预期创建了,包括Linux "printenv"中显示的LOG_HOME。

如果可能的话,我需要一种可以在Ubuntu上工作而不改变Windows Server上工作的SpringBoot实现的技术。

提前感谢您的建议。

而不是像

那样在shell会话中导出
export LOG_HOME = /home/ubuntu/logs

尝试将此作为启动命令中的-D VM参数例如:java -cp=xxx mainclass -DLOG_HOME=/home/ubuntu/log

如果你正在使用tomcat,那么:可添加虚拟机参数catalina.sh file under CATALINA_OPTS.

对于tomcat,将环境变量添加到$TOMCAT_HOME/bin/setenv.sh,其中$TOMCAT_HOME是tomcat的安装目录。

我的解决方案是编辑Catalina.sh文件并添加"-D"CATALINA_OPTS下的名称-值对选项。感谢所有发帖的人。:)

相关内容

  • 没有找到相关文章

最新更新