Spring Boot на AWS Elasti c Beanstalk и ведение журнала в файл - PullRequest
2 голосов
/ 06 августа 2020

Я искал простой способ просматривать операторы отладки в 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

Если запись в файл не является хорошей идеей, каковы альтернативы? Я много гуглил по этой проблеме, и все ответы не очень ясны.

1 Ответ

0 голосов
/ 06 августа 2020

Да, это проблемы с разрешением. Ваше приложение работает под webapp пользователем, а /var/log принадлежит root. Таким образом, вы не можете писать в него.

Правильный способ добавления файлов журнала для распознавания EB - через файлы конфигурации.

В частности, предполагая Amazon Linux 2, вы можете create .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 - это домашняя папка вашего приложения.

...