基于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使用MD5加密字符串示例
Aug 22 Python
Python常见加密模块用法分析【MD5,sha,crypt模块】
May 24 Python
python实现寻找最长回文子序列的方法
Jun 02 Python
python3爬取数据至mysql的方法
Jun 26 Python
python实现嵌套列表平铺的两种方法
Nov 08 Python
解决pycharm py文件运行后停止按钮变成了灰色的问题
Nov 29 Python
解决win7操作系统Python3.7.1安装后启动提示缺少.dll文件问题
Jul 15 Python
Python tensorflow实现mnist手写数字识别示例【非卷积与卷积实现】
Dec 19 Python
从多个tfrecord文件中无限读取文件的例子
Feb 17 Python
python实现查找所有程序的安装信息
Feb 18 Python
浅谈python累加求和+奇偶数求和_break_continue
Feb 25 Python
详解python中groupby函数通俗易懂
May 14 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数学运算
2011/12/30 PHP
Laravel 自动生成验证的实例讲解:login / logout
2019/10/14 PHP
php在linux环境中如何使用redis详解
2020/12/15 PHP
DOM_window对象属性之--clipboardData对象操作代码
2011/02/03 Javascript
js原生态函数中使用jQuery中的 $(this)无效的解决方法
2011/05/25 Javascript
使用UglifyJS合并/压缩JavaScript的方法
2012/03/07 Javascript
Jquery 实现表格颜色交替变化鼠标移过颜色变化实例
2013/08/28 Javascript
Google (Local) Search API的简单使用介绍
2013/11/28 Javascript
深入理解jQuery中live与bind方法的区别
2013/12/18 Javascript
javascript闭包的理解
2015/04/01 Javascript
js显示文本框提示文字的方法
2015/05/07 Javascript
JavaScript动态创建div等元素实例讲解
2016/01/06 Javascript
深入理解JavaScript内置函数
2016/06/03 Javascript
分享jQuery网页元素拖拽插件
2020/12/01 Javascript
js 弹出对话框(遮罩)透明,可拖动的简单实例
2016/07/11 Javascript
JS双击变input框批量修改内容
2016/12/12 Javascript
jQuery与vue实现拖动验证码功能
2018/01/30 jQuery
解决在vue项目中,发版之后,背景图片报错,路径不对的问题
2018/03/06 Javascript
使用vue-router为每个路由配置各自的title
2018/07/30 Javascript
elementUI table表格动态合并的示例代码
2019/05/15 Javascript
javaScript把其它类型转换为Number类型
2019/10/13 Javascript
Python UnicodeEncodeError: 'gbk' codec can't encode character 解决方法
2015/04/24 Python
Flask框架Flask-Login用法分析
2018/07/23 Python
打包PyQt5应用时的注意事项
2020/02/14 Python
ROSEFIELD手表荷兰官方网上商店:北欧极简设计女士腕表品牌
2018/01/24 全球购物
美国渔具店:FishUSA
2019/08/07 全球购物
什么是数据库锁?Oracle中都有哪些类型的锁?
2015/08/21 面试题
绿化先进工作者事迹材料
2014/01/30 职场文书
先进班组材料范文
2014/12/25 职场文书
2015年员工工作表现评语
2015/03/25 职场文书
汽车4S店销售经理岗位职责
2015/04/02 职场文书
观看禁毒宣传片后的感想
2015/08/11 职场文书
大学优秀学生主要事迹材料
2015/11/04 职场文书
关于应聘教师的自荐信
2016/01/28 职场文书
go原生库的中bytes.Buffer用法
2021/04/25 Golang
解决python绘图使用subplots出现标题重叠的问题
2021/04/30 Python