基于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版的文曲星猜数字游戏代码
Sep 02 Python
python列出目录下指定文件与子目录的方法
Jul 03 Python
Python脚本获取操作系统版本信息
Dec 17 Python
Python2.7+pytesser实现简单验证码的识别方法
Dec 29 Python
Python中常用信号signal类型实例
Jan 25 Python
如何使用pyinstaller打包32位的exe程序
May 26 Python
详解PyCharm+QTDesigner+PyUIC使用教程
Jun 13 Python
python多环境切换及pyenv使用过程详解
Sep 27 Python
python访问hdfs的操作
Jun 06 Python
pytorch 计算ConvTranspose1d输出特征大小方式
Jun 23 Python
python批量合成bilibili的m4s缓存文件为MP4格式 ver2.5
Dec 01 Python
方法汇总:Python 安装第三方库常用
Apr 26 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
Mysql的Root密码忘记,查看或修改的解决方法(图文介绍)
2013/06/14 PHP
深入extjs与php参数交互的详解
2013/06/25 PHP
解析php session_set_save_handler 函数的用法(mysql)
2013/06/29 PHP
去除php注释和去除空格函数分享
2014/03/13 PHP
PHP反射机制原理与用法详解
2017/02/15 PHP
LazyLoad 延迟加载(按需加载)
2010/05/31 Javascript
Extjs中常用表单介绍与应用
2010/06/07 Javascript
js下将字符串当函数执行的方法
2011/07/13 Javascript
JavaScript学习笔记之数组求和方法
2016/03/23 Javascript
JavaScript简单实现弹出拖拽窗口(二)
2016/06/17 Javascript
jquery实现tab选项卡切换效果(悬停、下方横线动画位移)
2017/05/05 jQuery
详解Vue.js基于$.ajax获取数据并与组件的data绑定
2017/05/26 Javascript
js实现水平滚动菜单导航
2017/07/21 Javascript
Mpvue中使用Vant Weapp组件库的方法步骤
2019/05/16 Javascript
Vue实现点击显示不同图片的效果
2019/08/10 Javascript
解析原来浏览器原生支持JS Base64编码解码
2019/08/12 Javascript
解决vue项目本地启动时无法携带cookie的问题
2021/02/06 Vue.js
Python文件去除注释的方法
2015/05/25 Python
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Django的分页器实例(paginator)
2017/12/01 Python
python Web开发你要理解的WSGI & uwsgi详解
2018/08/01 Python
Python中捕获键盘的方式详解
2019/03/28 Python
Django网络框架之创建虚拟开发环境操作示例
2019/06/06 Python
django框架cookie和session用法实例详解
2019/12/10 Python
jupyter notebook更换皮肤主题的实现
2021/01/07 Python
移动端开发HTML5页面点击按钮后出现闪烁或黑色背景的解决办法
2018/09/19 HTML / CSS
加拿大领先的优质厨具产品在线购物网站:Golda’s Kitchen
2017/11/17 全球购物
马德里著名的运动鞋商店:NOIRFONCE
2019/04/12 全球购物
医学院四年学习生活的自我评价
2013/11/06 职场文书
学校对教师的评语
2014/04/28 职场文书
2014年前台个人工作总结
2014/11/14 职场文书
亚布力滑雪场导游词
2015/02/09 职场文书
导游词之吉林吉塔
2019/11/11 职场文书
详解Javascript实践中的命令模式
2021/05/05 Javascript
使用pandas生成/读取csv文件的方法实例
2021/07/09 Python
解决Mysql报错 Table 'mysql.user' doesn't exist
2022/05/06 MySQL