文章目录
django框架本身就带日志,一般配置在settings文件里。
配置
下列示例拿过去直接就可以用:
py
import os
from pathlib import Path
# 获取项目根目录 (确保 BASE_DIR 已定义,通常在文件顶部)
# BASE_DIR = Path(__file__).resolve().parent.parent
LOGGING = {
'version': 1,
'disable_existing_loggers': False, # 不要禁用默认的 logger
# 定义格式
'formatters': {
'verbose': {
'format': '{levelname} {asctime} {module} {message}',
'style': '{',
},
'simple': {
'format': '{levelname} {message}',
'style': '{',
},
},
# 定义处理器 (Handlers)
'handlers': {
# 控制台输出
'console': {
'level': 'DEBUG',
'class': 'logging.StreamHandler',
'formatter': 'verbose',
},
# 文件输出
'file': {
'level': 'INFO',
'class': 'logging.FileHandler',
'filename': os.path.join(BASE_DIR, 'django_debug.log'), # 日志文件保存在项目根目录
'encoding': 'utf-8', # 关键:防止中文乱码
'formatter': 'verbose',
},
},
# 定义记录器 (Loggers)
'loggers': {
# Django 框架本身的日志
'django': {
'handlers': ['console', 'file'],
'level': 'INFO', # Django 内部日志级别
'propagate': True,
},
# 你自己的 App 日志 (替换 'mysite' 为你的项目名或 app 名)
'mysite': {
'handlers': ['console', 'file'],
'level': 'DEBUG', # 你的代码日志级别
'propagate': False,
},
# 捕获所有未明确配置的 logger (根记录器)
'': {
'handlers': ['console', 'file'],
'level': 'WARNING',
},
},
}