Django 项目集成日志记录功能的完整配置指南

向北走
向北走
发布时间:2026-10-13 | 8人浏览过
原创

本文详细介绍在 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 中添加日志功能的具体方法,希望对开发者有所帮助。

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表