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

问题描述 投票:5回答:2

我正在使用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
2个回答
1
投票

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

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


0
投票

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

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

在这种情况下,您可能需要更改文件许可权之后已进行所有django调用,或者可能删除了日志文件,详细说明here

© www.soinside.com 2019 - 2024. All rights reserved.