在开发过程中,我一直在寻找一种简单的方法来查看 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/current/log/*.log
将指向您的应用程序存储其日志文件的位置。 /var/app/current
是您应用程序的主文件夹。
除了 Marcin 之外,我还必须完全按照记录的使用配置才能使其正常工作。
files:
"/opt/elasticbeanstalk/tasks/bundlelogs.d/applogs.conf" :
mode: "000755"
owner: root
group: root
content: |
/var/app/current/log/*.log