首页 > 解决方案 > Django 日志配置在本地服务器上工作,但不在远程服务器上

问题描述

我正在尝试在 django 设置文件中配置 django 日志记录,以便它将我的应用程序的 django 信息和信息记录到自定义文件中以便于查看。这是我的日志记录配置:

    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'console': {
            # exact format is not important, this is the minimum information
            'format': '%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
        },
        'file': {
            # exact format is not important, this is the minimum information
            'format': '%(asctime)s %(name)-12s %(levelname)-8s %(message)s',
        },
    },
    'handlers': {
        'file': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'formatter': 'file',
            'filename': 'logs/django_log.log',
            'backupCount': 10, # keep at most 10 log files
            'maxBytes': 5242880, # 5*1024*1024 bytes (5MB)
        },
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'console',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'level': 'INFO',
            'propagate': True,
        },
        'py.warnings': {
            'handlers': ['console'],
        },
        'my_application': {
            'level': 'INFO',
            'handlers': ['file', 'console'],
            # required to avoid double logging with root logger
            'propagate': False,
        },
    },
}

这适用于我的本地 manage.py 测试服务器,出现 django 事件和我记录的事件,初始化my_application为记录器名称。但是,在我的 Web 服务器上,创建了日志文件,奇怪的是,它只填充了偶尔的 djangoWARNING消息。因此,没有权限错误或无法访问日志文件。由于相同的配置在我的本地工作,配置不可能是问题,它显然只有INFO级别日志。

我的服务器设置取自本指南:https ://www.digitalocean.com/community/tutorials/how-to-set-up-django-with-postgres-nginx-and-gunicorn-on-ubuntu-18-04并使用 Gunicorn 和 Nginx 作为反向代理。问题可能出在这些配置上吗?我难住了。

此外,存储此 django 日志文件的最佳实践位置在哪里?

此外,还有一个相关的额外问题:如果记录了特定错误,可以通知您的免费/廉价服务的最佳最佳实践是什么?设置类似的东西似乎是个好主意,但我不认为 django 电子邮件程序一定是最优雅或最好的。

标签: djangologging

解决方案


推荐阅读