LOGGING = { 'version': 1, 'disable_existing_loggers': False, 'filters': { 'request_id': { # 自定义的filter '()': 'log_request_id.filters.RequestIDFilter' }, 'require_debug_false': { '()': 'django.utils.log.RequireDebugFalse', } }, 'formatters': { 'standard': { 'format': '%(levelname)s [%(asctime)s] [%(request_id)s] %(filename)s-%(funcName)s-%(lineno)s: %(message)s' # 这里使用filter request_id里的request_id字段 }, 'default': { 'format': '%(levelname)s [%(asctime)s] %(name)s: %(message)s' }, }, 'handlers': { 'console': { 'level': 'DEBUG', 'class': 'logging.StreamHandler', 'filters': ['request_id'], # 这里使用上面的filter: request_id 'formatter': 'standard', # 这里使用上面的formatter: standard }, 'file': { # 记录到日志文件(需要创建对应的目录,否则会出错) 'level': 'INFO', 'class': 'logging.handlers.RotatingFileHandler', 'filename': os.path.join(BASE_DIR, 'debug.log'), # 日志输出文件 'maxBytes': 1024*1024*5, # 文件大小 'backupCount': 5, # 备份份数 'formatter': 'default', # 使用哪种formatters日志格式 }, 'mail_admins': { 'level': 'ERROR', 'class': 'django.utils.log.AdminEmailHandler', 'filters': ['require_debug_false'], 'include_html': True, } }, 'loggers': { 'django': { 'handlers': ['file'], # 这里使用上面的handler: console 'level': 'INFO', 'propagate': True, }, 'django.request': { 'handlers': ['file', 'mail_admins'], 'level': 'INFO', 'propagate': False }, 'project.app': { 'handlers': ['file', 'mail_admins'], 'level': 'INFO', 'propagate': True } } }
|