首页 > 解决方案 > 如何在生产环境中记录 Django 警告和错误以记录文件?

问题描述

我想要实现的是生产中发生的警告和错误(即DEBUG=False)被记录到旋转日志文件中。

我试过这个

    LOGGING = {
        'version': 1,
        'disable_existing_loggers': True,
        'handlers': {
            'file': {
                'level': 'WARNING',
                'class': 'logging.FileHandler',
                'filename': 'staging.log',
            },
        },
        'loggers': {
            '': {
                'handlers': ['file'],
                'level': 'WARNING',
                'propagate': True,
            },
            'django': {
                'handlers': ['file'],
                'level': 'WARNING',
                'propagate': True,
            },
            'django.request': {
                'handlers': ['file'],
                'level': 'WARNING',
                'propagate': True,
            },
        },
    }

但是,上面记录了所有内容,而不仅仅是日志级别WARNING及以上的消息。

标签: djangologgingerror-logging

解决方案


您可以在此处关注 django 记录器。

在你的views.py中:

import logging
logger = logging.getLogger(__name__)

logger.error()然后您可以使用或logger.warning()或进行录制logger.info()。它将在您的主项目目录中创建一个记录器文件,并列出所有记录详细信息。

看到这个:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'verbose': {
            'format': '{levelname} {asctime} {module} {process:d} {thread:d} {message}',
            'style': '{',
        },
        'simple': {
            'format': '{levelname} {message}',
            'style': '{',
        },
    },
    'handlers': {
        'logfile': {
            'level': 'DEBUG',
            'class': 'logging.handlers.RotatingFileHandler',
            'filename': "yourproject_name.log",
            'maxBytes': 100000,
            'backupCount': 2,
            'formatter': 'verbose',
        },
    },
    'loggers': {
        'django': {
            'handlers': ['logfile'],
            'level': 'INFO',
            'propagate': True,
        },
        'apps': {
            'handlers': ['logfile'],
            'level': 'DEBUG',
            'propagate': True,
        },
    },
}

推荐阅读