基于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列表list数组array用法实例解析
Oct 28 Python
Python中join和split用法实例
Apr 14 Python
基于Python数据可视化利器Matplotlib,绘图入门篇,Pyplot详解
Oct 13 Python
微信跳一跳python代码实现
Jan 05 Python
Python学习笔记之While循环用法分析
Aug 14 Python
Python Lambda函数使用总结详解
Dec 11 Python
Python OpenCV读取显示视频的方法示例
Feb 20 Python
Java如何基于wsimport调用wcf接口
Jun 17 Python
Win10下配置tensorflow-gpu的详细教程(无VS2015/2017)
Jul 14 Python
解决Python 函数声明先后顺序出现的问题
Sep 02 Python
10个python爬虫入门实例(小结)
Nov 01 Python
解决IDEA翻译插件Translation报错更新TTK失败不能使用
Apr 24 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
人族 Terran 基本策略
2020/03/14 星际争霸
一个可绑定数据源的jQuery数据表格插件
2010/07/17 Javascript
JavaScript 高级篇之函数 (四)
2012/04/07 Javascript
各浏览器中querySelector和querySelectorAll的实现差异分析
2012/05/23 Javascript
jQuery弹出(alert)select选择的值
2013/04/21 Javascript
jquery遍历select元素(实例讲解)
2013/12/31 Javascript
js控制div弹出层实现方法
2015/05/11 Javascript
JavaScript判断表单中多选框checkbox选中个数的方法
2015/08/17 Javascript
JavaScript动态生成二维码图片
2016/04/20 Javascript
js 中文汉字转Unicode、Unicode转中文汉字、ASCII转换Unicode、Unicode转换ASCII、中文转换
2016/12/06 Javascript
js实现产品缩略图效果
2017/03/10 Javascript
PHP7新特性简述
2017/06/11 Javascript
JavaScript事件处理程序详解
2017/09/19 Javascript
微信小程序 数据绑定及运算的简单实例
2017/09/20 Javascript
Angular.js中window.onload(),$(document).ready()的写法浅析
2017/09/28 Javascript
js将当前时间格式化为 年-月-日 时:分:秒的实现代码
2018/01/20 Javascript
nodejs实现解析xml字符串为对象的方法示例
2018/03/14 NodeJs
微信小程序网络封装(简单高效)
2018/08/06 Javascript
layui问题之模拟select点击事件的实例讲解
2018/08/15 Javascript
vue组件中watch props根据v-if动态判断并挂载DOM的问题
2019/05/12 Javascript
vue-cli3配置与跨域处理方法
2019/08/17 Javascript
Vue中this.$nextTick的作用及用法
2020/02/04 Javascript
python 测试实现方法
2008/12/24 Python
跟老齐学Python之编写类之二方法
2014/10/11 Python
Django自定义分页效果
2017/06/27 Python
使用OpCode绕过Python沙箱的方法详解
2019/09/03 Python
Django def clean()函数对表单中的数据进行验证操作
2020/07/09 Python
雷朋巴西官方商店:Ray-Ban Brasil
2020/07/21 全球购物
预备党员承诺书
2014/03/25 职场文书
教师师德承诺书
2014/03/26 职场文书
《学棋》教后反思
2014/04/14 职场文书
《金色的草地》教学反思
2016/02/17 职场文书
医学会议开幕词
2016/03/03 职场文书
Python趣味实战之手把手教你实现举牌小人生成器
2021/06/07 Python
html5表单的required属性使用
2021/07/07 HTML / CSS
python 安全地删除列表元素的方法
2022/03/16 Python