Я пытался заставить мое приложение Flask регистрироваться в файле журнала. В эластичном бобовом стебле у меня есть регистратор в моем приложении фляги, который регистрирует файлы в
opt/python/log
Файл успешно создан, но когда я пытаюсь сделать что-то вроде
log.warning('ERROR')
Линия отображается неправильно. Я проверил, что мой регистратор работает правильно на localhost. Я прочитал много ответов о переполнении стека и считаю, что это проблема с разрешениями, однако, когда я пытаюсь добавить
commands:
01_change_permissions:
command: chmod g+s /opt/python/log
02_change_owner:
command: chown root:wsgi /opt/python/log
к
.ebextensions
Или даже что-то вроде
files:
"/opt/elasticbeanstalk/tasks/taillogs.d/history.conf" :
mode: "000755"
owner: root
group: root
content: |
/opt/log/python/history.log
Кажется, ничего не работает. Любая помощь будет оценена по достоинству!
Я думаю, вам нужен sudo для возможности записи в /opt/






Прочтите документы.
Я думаю, вам следует использовать регистратор, например: app.logger.warning('ERROR').
Нет, проблема не в этом. В своем приложении я импортирую журнал, чтобы регистратор работал правильно. Это проблема с разрешениями
Если вы еще не решили проблему, вы можете: изменить файл журнала на /tmp/tmp.log для отладки
Пазл состоял из двух частей.
В первую очередь:
Регистратор должен быть подключен к приложению в соответствии с этим GitHub.
https://gist.github.com/sm-azure/c4b2edd8a726d81f42c98ee40fc1730a
application.logger.addHandler(YourFileHandler)
Во-вторых:
Вам нужно вызвать регистратор через application.logger, а не только регистратор; т.е.
application.logger.debug("This text will log")
Следующая форма НЕ РАБОТАЕТ:
logger.debug("This text will NOT log")
Вытаскивание от этот ответ относительно ведения журнала для приложения django.
В команде 2 вам нужно изменить владельца и группу каталога на: wsgi.
Третья команда также необходима для изменения владельца по умолчанию.
Кроме того, мне пришлось добавить третью команду для установки контроля доступа к файлам. Кто-то умнее меня может рассказать, почему это необходимо, но без этого я столкнулся с проблемами.
ваш файл конфигурации .ebextensions должен быть:
commands:
01_change_permissions:
command: chmod g+s /opt/python/log
02_change_owner:
command: chown wsgi:wsgi /opt/python/log
03_change_default_owner:
command: setfacl -d -m g::rw /opt/python/log
когда вы говорите: «Не отображается правильно», что вы имеете в виду? Вы используете журналы Cloudwatch? Или вы подключаетесь к экземпляру по ssh и проверяете журнал вручную?