Django 项目集成日志记录功能的完整配置指南
本文详细介绍在 Django 项目中添加日志功能的方法。通过配置 settings.py 中的 LOGGING 字典,定义格式化器、处理器及日志级别,实现控制台输出与文件轮转存储。结合视图函数中的手动异常捕获,利用 logging.getLogger 获取指定 logger 并记录错误信息,确保应用运行状态可追溯。
Django 日志功能概述
参考 Django 官方文档获取更多信息。
Settings 日志配置详解
首先需要在项目的 settings 配置文件中添加相应的日志配置代码。
#LOGGING_DIR 日志文件存放目录
LOGGING_DIR = "logs" # 日志存放路径
if not os.path.exists(LOGGING_DIR):
os.mkdir(LOGGING_DIR)
import logging
LOGGING = {
'version': 1,
'disable_existing_loggers': False,
'formatters': { #格式化器
'standard': {
'format': '[%(levelname)s][%(asctime)s][%(filename)s][%(funcName)s][%(lineno)d] > %(message)s'
},
'simple': {
'format': '[%(levelname)s]> %(message)s'
},
},
'filters': {
'require_debug_true': {
'()': 'django.utils.log.RequireDebugTrue',
},
},
'handlers': {
'console': {
'level': 'DEBUG',
'filters': ['require_debug_true'],
'class': 'logging.StreamHandler',
'formatter': 'simple'
},
'file_handler': {
'level': 'INFO',
'class': 'logging.handlers.TimedRotatingFileHandler',
'filename': '%s/django.log' % LOGGING_DIR, #具体日志文件的名字
'formatter':'standard'
}, # 用于文件输出
'mail_admins': {
'level': 'ERROR',
'class': 'django.utils.log.AdminEmailHandler',
'formatter':'standard'
},
},
'loggers': { #日志分配到哪个handlers中
'mydjango': {
'handlers': ['console','file_handler'],
'level':'DEBUG',
'propagate': True,
},
'django.request': {
'handlers': ['mail_admins'],
'level': 'ERROR',
'propagate': False,
},
####如果要将get,post请求同样写入到日志文件中,则这个触发器的名字必须交django,然后写到handler中
}
}
视图函数中的日志集成
完成 settings 中的基础配置后,接下来需在具体的视图函数中实施日志记录。需要注意的是,在调用具体函数或方法时,必须手动捕获异常以确保日志能正确触发。
在视图函数内部,通过获取 logger 实例来记录日志信息。
登录视图日志记录示例
#这里我们模拟一个登陆来写
log = logging.getLogger('mydjango') #这里的mydjango是settings中loggers里面对应的名字
class Login(View):
def get(self,request):
return render(request,'login.html')
def post(self,request):
user = request.POST.get('username')
pwd = request.POST.get('password')
try:
s = 1/0
except Exception as e:
log.error(e)
总结
总结上述配置与代码实现步骤。
以上介绍了在 Django 中添加日志功能的具体方法,希望对开发者有所帮助。
免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。









