在Spring Boot中的application.properties中获取用户主路径

shy*_*yam 8 logging spring spring-el spring-boot

这应该是一个非常直接的任务,但经过相当多的研究后,我发现很难找到任何方法来做到这一点.

我只想在当前用户的主目录中创建一个日志文件.根据官方文档,我应该修改的变量是logging.filelogging.path.但是我如何获得用户家的价值logging.path呢?

我试过设置它像:

logging.path=#{systemProperties['user.home']}
Run Code Online (Sandbox Code Playgroud)

但没有任何成功.

Ada*_*lík 8

${user.home} 是你的答案。

例如: ${user.home}/logs/app/app.log

弹簧靴 2.2.6


小智 7

如果您使用Linux或Mac OS,则可以使用logging.path=${HOME}/logs

${HOME}被环境变量替换HOME

  • @Juh_ AFAIK $HOME 是一个标准的 Linux 环境变量,在 Windows 上不存在,因此该解决方案是 Linux 特定的,不适用于 Windows。在 Windows 上,$HOME 等效项将是 %homedrive%%homepath% 的组合。我不会直接依赖环境变量,而是查看 Adam Ostrozlik 的答案。 (2认同)

shy*_*yam 1

我相信我已经解决了问题。仅当从 IDE 运行时(仅供参考),相关日志文件实际上才会在类路径中生成。后来,当我制作一个 jar 文件并运行它时,日志文件将在文件中指定的正确位置生成application.properties。我仍然不知道为什么当我从 Eclipse 运行它时它会在类路径中生成。