【问题标题】:Django Logging with Elastic Beanstalk (AWS)使用 Elastic Beanstalk (AWS) 进行 Django 日志记录
【发布时间】:2015-12-14 11:05:42
【问题描述】:

我正在使用 Elastic Beanstalk 在 AWS 上部署基于 Django/Python 构建的 Web 服务。我正在使用 Django 的日志记录功能来记录网站使用情况和相关数据。虽然这在本地测试中运行良好,但我无法让它与 Beanstalk 一起使用。

我登录settings.py的代码是:

# Django Logging

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format' : "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt' : "%d/%b/%Y %H:%M:%S"
        },
        'simple': {
        'format': '%(levelname)s %(message)s'
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': 'spareguru.log',
            'formatter': 'verbose'
        },
    },
    'loggers': {
        'django': {
            'handlers':['file'],
            'propagate': True,
            'level':'DEBUG',
         },
        'customer': {
            'handlers': ['file'],
            'level': 'DEBUG',
         },
    }
}

我在部署到 Beanstalk 时遇到的错误是:

ValueError: Unable to configure handler 'file': [Errno 13] Permission denied: '/opt/python/bundle/3/app/spareguru.log'

我还尝试使用.ebextensions 创建一个文件,并让wsgi 成为该文件的所有者,但这也没有用。

我该如何解决这个问题?

【问题讨论】:

    标签: python django amazon-web-services amazon-elastic-beanstalk


    【解决方案1】:

    您在服务器上没有足够的权限来创建日志文件。配置 SSH 并使用 CHMOD 更改文件夹的权限

    配置 Elastic Beanstalk 应用程序的环境(用于 SSH)-enter link description here

    【讨论】:

      【解决方案2】:

      对于 OP 来说有点晚了,但这可能对其他人有用:

      如果你打电话给例如django-admin.py migrate 或其他 django 代码,在您的 .ebextensions container_commands 中,这将导致使用用户 root 和组 root 创建日志文件(除非该文件已经存在)。

      在这种情况下,所有 django 调用(在.ebextensions 中)之后,您可能需要更改文件权限,或者只是删除日志文件,如详细说明@987654321 @。

      【讨论】:

        猜你喜欢
        • 2015-02-17
        • 2021-03-22
        • 2021-03-09
        • 2021-03-10
        • 2019-02-11
        • 2015-01-14
        • 2017-04-04
        • 2011-09-07
        • 1970-01-01
        相关资源
        最近更新 更多