您好, 欢迎来到 !    登录 | 注册 | | 设为首页 | 收藏本站

使用Python(django)的AWS Elastic Beanstalk日志记录

使用Python(django)的AWS Elastic Beanstalk日志记录

首先,我通过ssh连接到ec2机器,然后以root用户在/ var / log中创建一个名为app_logs的文件夹:

mkdir /var/log/app_logs

之后,我执行以下操作:

cd /var/log/
chmod g+s app_logs/
setfacl -d -m g::rw app_logs/
chown wsgi:wsgi app_logs/

这样可以确保在此文件夹中创建的所有文件都将wsgi作为所有者,并且对于该文件所属的组是可写的。我必须这样做,因为我注意到django应用程序创建的日志文件具有root作为所有者和所有者组,但是该应用程序通过wsgi用户运行。

我有一个类似的问题,但是在Elastic Beanstalk上,因此我在.ebextensions应用程序的文件夹中创建了一个配置文件(例如applogs.config)。如果尚不存在app-logs文件夹,则会创建该文件夹,并设置文件权限和所有者,以便该应用可以在此处写入其日志。

commands:
  00_create_dir:
    command: mkdir -p /var/log/app-logs
  01_change_permissions:
    command: chmod g+s /var/log/app-logs
  02_change_owner:
    command: chown wsgi:wsgi /var/log/app-logs

最后,在你的Django设置中:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.FileHandler',
            'filename': '/var/log/app-logs/django.log',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

另外,如果希望使用Web从beantalk日志访问日志,请将其添加到.ebextensions中的文件中。

files:
  "/opt/elasticbeanstalk/tasks/taillogs.d/django.conf":
    mode: "000755"
    owner: root
    group: root
    content: |
      /var/log/app-logs/django.log
python 2022/1/1 18:17:52 有547人围观

撰写回答


你尚未登录,登录后可以

和开发者交流问题的细节

关注并接收问题和回答的更新提醒

参与内容的编辑和改进,让解决方法与时俱进

请先登录

推荐问题


联系我
置顶