配置Django的LOGGING:
在项目的settings.py文件中添加LOGGING配置。这个配置项是一个字典,主要包含以下几个关键部分:
version:日志配置的版本号,当前Django仅支持1。
disable_existing_loggers:是否禁用已经存在的日志器,一般设置为False。
handlers:定义日志处理器,指定日志消息的目的地和日志级别。
loggers:定义日志记录器,指定日志的最小级别和使用的处理器。
formatters:定义日志的输出格式,包括时间、日志级别、消息等信息。
# 日志添加颜色
from colorlog import ColoredFormatter
# 日志记录
LOGGING = {
"version": 1,
"disable_existing_loggers": False, # 用于确定在应用新的日志配置时是否禁用之前配置的日志器
# 格式器
"formatters": {
"verbose": { # 输出日志级别名称、日志信息,以及生成日志信息的时间、进程、线程和模块。format格式化输出
"format": "{levelname} {asctime} {module} {process:d} {thread:d} {message}",
"style": "{",
},
"simple": { # 输出日志级别名称和日志信息。
"format": "{levelname} {message}",
"style": "{",
},
'color': {
'()': ColoredFormatter,
'format': '%(log_color)s%(levelname)-8s%(reset)s %(white)s%(message)s',
'datefmt': '%Y-%m-%d %H:%M:%S',
'log_colors': {
'DEBUG': 'cyan',
'INFO': 'green',
'WARNING': 'yellow',
'ERROR': 'red',
'CRITICAL': 'red,bg_white',
},
'secondary_log_colors': {},
'style': '%'
},
},
# 过滤器
"filters": {
"require_debug_true": {
"()": "django.utils.log.RequireDebugTrue", # 当DEBUG为True时,传递记录。
},
},
# 处理器
"handlers": {
"console": { # 输出到终端
"level": "DEBUG", # 日志级别
"filters": ["require_debug_true"], # 使用的过滤器,上边已经定义
"class": "logging.StreamHandler", # 用于将日志消息发送到一个流,通常是一个输出流,比如控制台(标准输出)
"formatter": "simple", # 格式器,上边有定义
},
"file": { # 输出到文件
"level": "DEBUG", # 日志级别
"class": "logging.handlers.RotatingFileHandler", # 将日志输出到一个文件中
"filename": os.path.join(BASE_DIR, 'logs/logs.log'), # 日志输出的文件, os.path.join用来拼接路径
"maxBytes": 300 * 1024 * 1024, # 一个文件300M
"backupCount": 10, # 备份10个文件
"formatter": "verbose", # 格式器
'encoding': 'utf-8'
},
},
"loggers": { # 日志器
"django": { # 创建的日志记录器
"handlers": ["console", 'file'], # 处理方式:在终端输出、输出到文件
"propagate": True, # 日志没有被处理,日志消息将向上传递给上级记录器
'level': 'DEBUG', # 日志输出最低级别,低于这个将不会输出
},
},
}