基于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中django框架通过正则搜索页面上email地址的方法
Mar 21 Python
详细介绍Python的鸭子类型
Sep 12 Python
老生常谈Python序列化和反序列化
Jun 28 Python
wx.CheckBox创建复选框控件并响应鼠标点击事件
Apr 25 Python
Python列表list排列组合操作示例
Dec 18 Python
python实现得到当前登录用户信息的方法
Jun 21 Python
用sqlalchemy构建Django连接池的实例
Aug 29 Python
使用虚拟环境打包python为exe 文件的方法
Aug 29 Python
python GUI库图形界面开发之PyQt5滑块条控件QSlider详细使用方法与实例
Feb 28 Python
Django Form常用功能及代码示例
Oct 13 Python
python使用requests库爬取拉勾网招聘信息的实现
Nov 20 Python
python基于pexpect库自动获取日志信息
Feb 01 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加速的eAccelerator dll支持文件打包下载
2007/09/30 PHP
win2003服务器使用WPS的COM组件的一些问题解决方法
2012/01/11 PHP
PHP中的gzcompress、gzdeflate、gzencode函数详解
2014/07/29 PHP
ThinkPHP框架结合Ajax实现用户名校验功能示例
2019/07/03 PHP
extjs两个tbar问题探讨
2013/08/08 Javascript
简单的ajax连接库分享(不用jquery的ajax)
2014/01/19 Javascript
ext前台接收action传过来的json数据示例
2014/06/17 Javascript
jQuery检测返回值的数据类型
2015/07/13 Javascript
基于JS实现导航条flash导航条
2016/06/17 Javascript
jQuery弹出层后禁用底部滚动条(移动端关闭回到原位置)
2016/08/29 Javascript
原生JS实现图片左右轮播
2016/12/30 Javascript
css和js实现弹出登录居中界面完整代码
2017/11/26 Javascript
在vue2.0中引用element-ui组件库的方法
2018/06/21 Javascript
JQuery搜索框自动补全(模糊匹配)功能实现示例
2019/01/08 jQuery
JS双向链表实现与使用方法示例(增加一个previous属性实现)
2019/01/31 Javascript
详解nvm管理多版本node踩坑
2019/07/26 Javascript
微信公众号H5之微信分享常见错误和问题(小结)
2019/11/14 Javascript
JavaScript 判断浏览器是否是IE
2021/02/19 Javascript
[01:19:11]Ti4 循环赛第二日 NaVi.us vs iG
2014/07/11 DOTA
[01:06]DOTA2小知识课堂 Ep.02 吹风竟可解梦境缠绕
2019/12/05 DOTA
[57:22]完美世界DOTA2联赛PWL S2 FTD vs PXG 第二场 11.27
2020/12/01 DOTA
python求素数示例分享
2014/02/16 Python
深入浅析python 中的匿名函数
2018/05/21 Python
Python字符串的常见操作实例小结
2019/04/08 Python
详解一种用django_cache实现分布式锁的方式
2019/09/01 Python
python找出列表中大于某个阈值的数据段示例
2019/11/24 Python
Python读取YAML文件过程详解
2019/12/30 Python
Django添加bootstrap框架时无法加载静态文件的解决方式
2020/03/27 Python
Django模板获取field的verbose_name实例
2020/05/19 Python
python实现图片,视频人脸识别(opencv版)
2020/11/18 Python
Linux上比较文件的命令都有哪些
2012/02/24 面试题
大学生大二自我鉴定
2013/10/28 职场文书
大学生学习2014年全国两会心得体会
2014/03/12 职场文书
大学迎新晚会主持词
2014/03/24 职场文书
公开服务承诺制度
2014/03/26 职场文书
2019年员工旷工保证书!
2019/06/28 职场文书