基于Django实现日志记录报错信息


Posted in Python onDecember 17, 2019

这篇文章主要介绍了基于Django实现日志记录报错信息,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

当服务器500错误的时候,普通日志只会记录一行500的request信息,并不会记录详细的报错定位

[ERROR] 2019-06-12 15:07:03,597 "GET /api/v1/test/ HTTP/1.1" 500 74196

需要添加一个在日志中记录详细错误信息的middleware

# -*- coding: UTF-8 -*-
import logging

logger = logging.getLogger('default')


class ExceptionLoggingMiddleware(object):
  def process_exception(self, request, exception):
    import traceback
    logger.error(traceback.format_exc())

将此中间件添加到settings的MIDDLEWARE_CLASSES中

MIDDLEWARE_CLASSES = (
'utils.my_middleware.ExceptionLoggingMiddleware',
)

使用Django logger

'loggers': {
    'django': {
      'handlers': ['file', 'console'],
      'level': 'INFO'
    },

效果

[ERROR] 2019-06-12 15:07:02,265 Internal Server Error: /api/v1/test/
Traceback (most recent call last):
 File "E:\tcp_check\venv\lib\site-packages\django\core\handlers\exception.py", line 35, in inner
  response = get_response(request)
 File "E:\tcp_check\venv\lib\site-packages\django\core\handlers\base.py", line 128, in _get_response
  response = self.process_exception_by_middleware(e, request)
 File "E:\tcp_check\venv\lib\site-packages\django\core\handlers\base.py", line 126, in _get_response
  response = wrapped_callback(request, *callback_args, **callback_kwargs)
 File "E:\tcp_check\tcp_test_app\views.py", line 23, in test
  a=1/0
ZeroDivisionError: division by zero
[ERROR] 2019-06-12 15:07:03,597 "GET /api/v1/test/ HTTP/1.1" 500 74196

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python中实现三目运算的方法
Jun 21 Python
python利用正则表达式排除集合中字符的功能示例
Oct 10 Python
Python数字图像处理之霍夫线变换实现详解
Jan 12 Python
在python3中pyqt5和mayavi不兼容问题的解决方法
Jan 08 Python
在Pycharm中将pyinstaller加入External Tools的方法
Jan 16 Python
Python装饰器限制函数运行时间超时则退出执行
Apr 09 Python
对Pytorch神经网络初始化kaiming分布详解
Aug 18 Python
flask框架蓝图和子域名配置详解
Jan 25 Python
python读取当前目录下的CSV文件数据
Mar 11 Python
浅谈numpy中np.array()与np.asarray的区别以及.tolist
Jun 03 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python编写五子棋游戏
May 25 Python
python实现12306登录并保存cookie的方法示例
Dec 17 #Python
Django多进程滚动日志问题解决方案
Dec 17 #Python
python django中8000端口被占用的解决
Dec 17 #Python
python飞机大战pygame游戏之敌机出场实现方法详解
Dec 17 #Python
解决pycharm上的jupyter notebook端口被占用问题
Dec 17 #Python
解决python web项目意外关闭,但占用端口的问题
Dec 17 #Python
selenium+Chrome滑动验证码破解二(某某网站)
Dec 17 #Python
You might like
PHP中判断变量为空的几种方法小结
2013/11/12 PHP
php实现的简单检验登陆类
2015/06/18 PHP
精解window.setTimeout()&window.setInterval()使用方式与参数传递问题!
2007/11/23 Javascript
jQuery '行 4954 错误: 不支持该属性或方法' 的问题解决方法
2011/01/19 Javascript
解析ScrollPic在ie8下只滚动一遍,然后变为空白 ie6,ie7,chrome,firefox正常
2013/06/26 Javascript
细说javascript函数从函数的构成开始
2013/08/29 Javascript
jQuery动画效果animate和scrollTop结合使用实例
2014/04/02 Javascript
Javascript学习笔记之函数篇(四):arguments 对象
2014/11/23 Javascript
jQuery实现contains方法不区分大小写的方法
2015/02/13 Javascript
JS对字符串编码的几种方式使用指南
2015/05/14 Javascript
Bootstrap表单组件教程详解
2016/04/26 Javascript
Bootstrap的Refresh Icon也spin起来
2016/07/13 Javascript
微信小程序 本地数据存储实例详解
2017/04/13 Javascript
详解vee-validate的使用个人小结
2017/06/07 Javascript
JavaScript利用fetch实现异步请求的方法实例
2017/07/26 Javascript
react+ant design实现Table的增、删、改的示例代码
2018/12/27 Javascript
新手入门带你学习JavaScript引擎运行原理
2019/06/24 Javascript
原生js实现瀑布流效果
2020/03/09 Javascript
JavaScript实现电灯开关小案例
2020/03/30 Javascript
node.js爬虫框架node-crawler初体验
2020/10/29 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
[01:31:02]TNC vs VG 2019国际邀请赛淘汰赛 胜者组赛BO3 第一场
2019/08/22 DOTA
Python天气预报采集器实现代码(网页爬虫)
2012/10/07 Python
Python实现把json格式转换成文本或sql文件
2015/07/10 Python
Python实现模拟时钟代码推荐
2015/11/08 Python
Python3计算三角形的面积代码
2017/12/18 Python
Flask模拟实现CSRF攻击的方法
2018/07/24 Python
python实现图书借阅系统
2019/02/20 Python
CSS3 文字动画效果
2020/11/12 HTML / CSS
光荣入党自我鉴定
2014/01/22 职场文书
《小壁虎借尾巴》教学反思
2014/02/16 职场文书
专科应届毕业生求职信
2014/06/04 职场文书
小学生自我评价100字(15篇)
2014/09/18 职场文书
2015年春训学习心得体会范文
2015/03/09 职场文书
埃及王子观后感
2015/06/16 职场文书
MongoDB使用profile分析慢查询的步骤
2021/04/30 MongoDB