基于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实现建立SSH连接的方法
Jun 03 Python
python多进程实现进程间通信实例
Nov 24 Python
python列表的增删改查实例代码
Jan 30 Python
python实现微信发送邮件关闭电脑功能
Feb 22 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python安装numpy和pandas的方法步骤
May 27 Python
Python3内置模块之json编解码方法小结【推荐】
Dec 09 Python
Python生成指定数量的优惠码实操内容
Jun 18 Python
python如何删除文件中重复的字段
Jul 16 Python
浅谈django框架集成swagger以及自定义参数问题
Jul 07 Python
python 线程的五个状态
Sep 22 Python
Python hashlib和hmac模块使用方法解析
Dec 08 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
《DOTA3》开发工作已经开始 《DOTA3》将代替《DOTA2》
2021/03/06 DOTA
基于empty函数的输出详解
2013/06/17 PHP
discuz图片顺序混乱解决方案
2015/07/29 PHP
实例讲解如何在PHP的Yii框架中进行错误和异常处理
2016/03/17 PHP
[原创]php正则删除img标签的方法示例
2017/05/27 PHP
IE8 兼容性问题(属性名区分大小写)
2009/06/04 Javascript
JS面向对象编程之对象使用分析
2010/08/19 Javascript
seajs中模块的解析规则详解和模块使用总结
2014/03/12 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
JavaScript获取网页、浏览器、屏幕高度和宽度汇总
2014/12/18 Javascript
JS实现简单路由器功能的方法
2015/05/27 Javascript
jQuery实现两列等高并自适应高度
2016/12/22 Javascript
JS常见创建类的方法小结【工厂方式,构造器方式,原型方式,联合方式等】
2017/04/01 Javascript
详解使用Node.js 将txt文件转为Excel文件
2017/07/05 Javascript
vue.js实现单选框、复选框和下拉框示例
2017/07/18 Javascript
vue实现页面切换滑动效果
2020/06/29 Javascript
jquery实现简单每周轮换的日历
2020/09/10 jQuery
Python中针对函数处理的特殊方法
2014/03/06 Python
Python标准异常和异常处理详解
2015/02/02 Python
详解Python的Django框架中的Cookie相关处理
2015/07/22 Python
Python中断言Assertion的一些改进方案
2016/10/27 Python
python3监控CentOS磁盘空间脚本
2018/06/21 Python
用Python批量把文件复制到另一个文件夹的实现方法
2019/08/16 Python
Python类中的魔法方法之 __slots__原理解析
2019/08/26 Python
Tensorflow 定义变量,函数,数值计算等名字的更新方式
2020/02/10 Python
浅谈Pycharm的项目文件名是红色的原因及解决方式
2020/06/01 Python
python交互模式基础知识点学习
2020/06/18 Python
详解Css3新特性应用之过渡与动画
2017/01/10 HTML / CSS
全球领先的各类汽车配件零售商:Advance Auto Parts
2016/08/26 全球购物
英国性感内衣和睡衣品牌:Bluebella
2018/01/26 全球购物
大学军训感言1000字
2014/02/25 职场文书
宇宙与人观后感
2015/06/05 职场文书
紫日观后感
2015/06/05 职场文书
2016年社区创先争优活动总结
2016/04/05 职场文书
CSS 左边固定宽右边自适应的6种方法
2022/05/15 HTML / CSS