Django 基本日志配置

在内部,Django 使用 Python 日志系统。有许多方法可以配置项目的日志记录。这是一个基地:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'formatters': {
        'default': {
            'format': "[%(asctime)s] %(levelname)s [%(name)s:%(lineno)s] %(message)s",
            'datefmt': "%Y-%m-%d %H:%M:%S"
        },
    },
    'handlers': {
        'console': {
            'level': 'INFO',
            'class': 'logging.StreamHandler',
            'formatter': 'default'
        },
    },
    'loggers': {
        'django': {
            'handlers': ['console'],
            'propagate': True,
            'level': 'INFO',
        },
    }
}

格式化程序

它可以用于配置打印到输出时的日志外观。你可以通过为每个不同的格式化程序设置键字符串来定义许多格式化程序。然后在声明处理程序时使用格式化程序。

处理程序

可用于配置日志的打印位置。在上面的示例中,它们被发送到 stdout 和 stderr。有各种处理程序类:

'rotated_logs': {
    'class': 'logging.handlers.RotatingFileHandler',
    'filename': '/var/log/my_project.log',
    'maxBytes': 1024 * 1024 * 5,  # 5 MB
    'backupCount': 5,
    'formatter': 'default'
    'level': 'DEBUG',
},

这将生成由 filename 定位的文件中的日志。在此示例中,当当前大小为 5 MB(旧的重命名为 my_project.log.1)时将创建新的日志文件,并保留最新的 5 个文件以进行存档。

'mail_admins': {
    'level': 'ERROR',
    'class': 'django.utils.log.AdminEmailHandler'
},

这将通过 eamil 将每个日志发送给 ADMINS 设置变量中指定的用户。级别设置为 ERROR,因此只有通过电子邮件发送级别为 ERROR 的日志。这对于了解生产服务器上 50x 的潜在错误非常有用。

其他处理程序可以与 Django 一起使用。有关完整列表,请阅读相应的文档 。与格式化程序一样,你可以在同一个项目中定义多个处理程序,为每个处理程序设置不同的键字符串。每个处理程序都可以在特定的记录器中使用。

记录仪

LOGGING 中,最后一部分为每个模块配置最小日志记录级别,使用的处理程序等。