基于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而不是Matlab和R语言
Nov 14 Python
Python使用add_subplot与subplot画子图操作示例
Jun 01 Python
Python实现批量修改图片格式和大小的方法【opencv库与PIL库】
Dec 03 Python
基于Python对数据shape的常见操作详解
Dec 25 Python
Python当中的array数组对象实例详解
Jun 12 Python
python把转列表为集合的方法
Jun 28 Python
Django 源码WSGI剖析过程详解
Aug 05 Python
python对象转字典的两种实现方式示例
Nov 07 Python
Python-openCV读RGB通道图实例
Jan 17 Python
Python列表切片常用操作实例解析
Mar 10 Python
python zip,lambda,map函数代码实例
Apr 04 Python
keras分类模型中的输入数据与标签的维度实例
Jul 03 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/06/09 PHP
浅析PHP中Collection 类的设计
2013/06/21 PHP
php实现多维数组中每个单元值(数字)翻倍的方法
2015/02/16 PHP
PHP中预定义的6种接口介绍
2015/05/12 PHP
10款实用的PHP开源工具
2015/10/23 PHP
PHP实现数据分页显示的简单实例
2016/05/26 PHP
详谈PHP中public,private,protected,abstract等关键字的用法
2017/12/31 PHP
php统计数组不同元素的个数的实例方法
2019/09/26 PHP
js中几种去掉字串左右空格的方法
2006/12/25 Javascript
从阿里妈妈发现的几个不错的表单验证函数
2007/09/21 Javascript
非阻塞动态加载javascript广告实现代码
2010/11/17 Javascript
jQuery获取样式中的背景颜色属性值/颜色值
2012/12/17 Javascript
jquery提取元素里的纯文本不包含span等里的内容
2013/09/30 Javascript
jQuery简单图表peity.js使用示例
2014/05/02 Javascript
JavaSacript中charCodeAt()方法的使用详解
2015/06/05 Javascript
深入学习Bootstrap表单
2016/12/13 Javascript
jQuery实现可拖拽3D万花筒旋转特效
2017/01/03 Javascript
详解vue.js移动端导航navigationbar的封装
2017/07/05 Javascript
JavaScript获取tr td 的三种方式全面总结(推荐)
2017/08/15 Javascript
JS实现匀加速与匀减速运动的方法示例
2017/09/04 Javascript
原生JS+CSS实现炫酷重力模拟弹跳系统的登录页面
2017/11/01 Javascript
bootstrap table支持高度百分比的实例代码
2018/02/28 Javascript
Cookbook组件形式:优化 Vue 组件的运行时性能
2018/11/25 Javascript
Vue实现验证码功能
2019/12/03 Javascript
python中stdout输出不缓存的设置方法
2014/05/29 Python
Python lambda和Python def区别分析
2014/11/30 Python
Python浅拷贝与深拷贝用法实例
2015/05/09 Python
Python简单实现TCP包发送十六进制数据的方法
2016/04/16 Python
Python使用Windows API创建窗口示例【基于win32gui模块】
2018/05/09 Python
继承时候类的执行顺序问题,一般都是选择题,问你将会打印出什么?
2015/11/18 面试题
旅游专业职业生涯规划范文
2014/01/13 职场文书
《美丽的黄昏》教学反思
2014/02/28 职场文书
文明礼仪演讲稿
2014/05/12 职场文书
六年级作文之预言作文
2019/10/25 职场文书
浅谈MySQL之浅入深出页原理
2021/06/23 MySQL
【海涛教你打DOTA】死灵飞龙第一视角解说
2022/04/01 DOTA