繁体   English   中英

Spring 在 AWS Elastic Beanstalk 上启动并记录到文件

[英]Spring Boot on AWS Elastic Beanstalk and logging to a file

在开发过程中,我一直在寻找一种简单的方法来查看 Beanstalk 上的调试语句。 我以为我可以简单地登录到 Beanstalk 上的文件。

在我的 application.properties 文件中我设置

logging.file.path=/var/log

即使在我的本地机器上也没有产生任何结果。 我不确定这是权限问题还是什么,但我在本地设置了主目录的路径,然后我看到文件 spring.log 出现了。

对于 Beanstalk,我尝试了 /var/log、var/log/tomcat、/home/webapp/、./、~ 和其他各种值。 没有任何效果。

我什至尝试了这里的建议但没有运气: https://medium.com/vividcode/logging-practice-for-elastic-beanstalk-java-apps-308ed7c4d63f

如果记录到文件不是一个好主意,还有什么替代方法? 我在谷歌上搜索了很多关于这个问题的答案,所有答案都不是很清楚。

是的,这是权限问题。 您的应用程序在webapp用户下运行,而/var/log由 root 拥有。 因此你不能写信给它。

添加日志文件以被 EB 识别的正确方法是通过配置文件。

具体来说,假设 Amazon Linux 2,您可以使用以下内容创建.ebextensions/mylogfiles.config

files: 
  "/opt/elasticbeanstalk/config/private/logtasks/bundle/myapplogs.conf":
    mode: "000644"
    owner: root
    group: root
    content: |
       /var/app/current/log/*.log

显然,/var/app/ /var/app/current/log/*.log log/*.log 将指向您的应用程序存储其日志文件的位置。 /var/app/current是您的应用程序的主文件夹。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM