使用Elastic Beanstalk(AWS)进行Django日志记录

时间:2015-09-17 14:19:59

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

我正在使用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成为该文件的所有者,但这也无效。

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

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

的权限

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

答案 1 :(得分:0)

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

如果您致电例如django-admin.py migrate .ebextensions中的container_commands或其他django代码将导致使用用户root和组root创建日志文件。

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