簡體   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