如何在django中添加日志功能


Posted in Python onFebruary 06, 2020

官方文档 猛戳这里

在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中写完配置之后,下面就要具体到相应的视图函数中了。注意:这里我们在实施到具体函数或方法的时候需要手动捕获异常

然后视图函数中

#这里我们模拟一个登陆来写
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 相关文章推荐
Python中用于检查英文字母大写的isupper()方法
May 19 Python
浅谈Python中列表生成式和生成器的区别
Aug 03 Python
Django使用HttpResponse返回图片并显示的方法
May 22 Python
python实现搜索文本文件内容脚本
Jun 22 Python
一文带你了解Python中的字符串是什么
Nov 20 Python
python 内置模块详解
Jan 01 Python
python生成带有表格的图片实例
Feb 03 Python
python算法与数据结构之单链表的实现代码
Jun 27 Python
Python Pandas对缺失值的处理方法
Sep 27 Python
Python实现从N个数中找到最大的K个数
Apr 02 Python
tensorflow模型转ncnn的操作方式
May 25 Python
分享7个 Python 实战项目练习
Mar 03 Python
keras tensorflow 实现在python下多进程运行
Feb 06 #Python
Scrapy框架实现的登录网站操作示例
Feb 06 #Python
Tensorflow 多线程设置方式
Feb 06 #Python
Scrapy框架基本命令与settings.py设置
Feb 06 #Python
python opencv圆、椭圆与任意多边形的绘制实例详解
Feb 06 #Python
Python输出指定字符串的方法
Feb 06 #Python
python实现简单飞行棋
Feb 06 #Python
You might like
全国FM电台频率大全 - 31 新疆维吾尔族自治区
2020/03/11 无线电
php封装的验证码工具类完整实例
2016/10/19 PHP
php获取POST数据的三种方法实例详解
2016/12/20 PHP
bcastr2.0 通用的图片浏览器
2006/11/22 Javascript
Highcharts 多个Y轴动态刷新数据的实现代码
2016/05/28 Javascript
详解前端自动化工具gulp自动添加版本号
2016/12/20 Javascript
教你用十行node.js代码读取docx的文本
2017/03/08 Javascript
Flask中获取小程序Request数据的两种方法
2017/05/12 Javascript
JavaScript+HTML5实现的日期比较功能示例
2017/07/12 Javascript
Vue中对比scoped css和css module的区别
2018/05/17 Javascript
微信小程序实现自定义加载图标功能
2018/07/19 Javascript
vuejs中监听窗口关闭和窗口刷新事件的方法
2018/09/21 Javascript
nodejs搭建本地服务器并访问文件操作示例
2019/05/11 NodeJs
javascript设计模式 ? 工厂模式原理与应用实例分析
2020/04/09 Javascript
JS实现小米轮播图
2020/09/21 Javascript
wxPython窗口的继承机制实例分析
2014/09/28 Python
python控制台中实现进度条功能
2015/11/10 Python
Python模糊查询本地文件夹去除文件后缀的实例(7行代码)
2017/11/09 Python
python实现求解列表中元素的排列和组合问题
2018/03/15 Python
在scrapy中使用phantomJS实现异步爬取的方法
2018/12/17 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
[机器视觉]使用python自动识别验证码详解
2019/05/16 Python
详解python中的生成器、迭代器、闭包、装饰器
2019/08/22 Python
python matplotlib imshow热图坐标替换/映射实例
2020/03/14 Python
Python爬虫使用bs4方法实现数据解析
2020/08/25 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
利用HTML5画出一个坦克的形状具体实现代码
2013/06/20 HTML / CSS
美国快时尚彩妆品牌:Winky Lux(透明花瓣润唇膏)
2018/11/06 全球购物
运动会广播稿300字
2014/01/10 职场文书
教师自我反思材料
2014/02/14 职场文书
铲车司机岗位职责
2014/03/15 职场文书
水毁工程实施方案
2014/04/01 职场文书
校长四风对照检查材料
2014/09/27 职场文书
党员“四风”问题批评与自我批评思想汇报
2014/10/06 职场文书
人生哲理妙语30条:淡写流年,笑过人生
2019/09/04 职场文书
Keras在mnist上的CNN实践,并且自定义loss函数曲线图操作
2021/05/25 Python