0

我一直在尝试让我的 Flask 应用程序登录到日志文件。在弹性豆茎中,我的烧瓶应用程序中有一个记录器,可将文件记录到

opt/python/log

该文件已成功创建,但是当我尝试执行类似的操作时

log.warning('ERROR')

该行未正确显示。我已经测试以确保我的记录器在本地主机上正常工作。我已经阅读了许多堆栈溢出响应并认为这是一个权限问题,但是当我尝试添加

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

似乎没有任何效果。任何帮助,将不胜感激!

4

3 回答 3

0

这个答案中提取关于 django app 的日志记录

在命令 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
于 2019-02-22T23:53:10.207 回答
0

拼图有两部分。

首先:

记录器需要按照这个 GitHub 连接到应用程序

https://gist.github.com/sm-azure/c4b2edd8a726d81f42c98ee40fc1730a

application.logger.addHandler(YourFileHandler)

第二:

您需要通过 application.logger 调用记录器,而不仅仅是记录器;IE

application.logger.debug("This text will log")

以下表格将不起作用:

logger.debug("This text will NOT log")
于 2019-02-07T14:21:06.467 回答
0

阅读文档

我认为你应该使用像这样的记录器:app.logger.warning('ERROR').

于 2018-09-19T05:45:30.797 回答