基于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 psutil模块简单使用实例
Apr 28 Python
详解Python中的条件判断语句
May 14 Python
python爬虫基本知识
Mar 05 Python
Python安装pycurl失败的解决方法
Oct 15 Python
使用python将excel数据导入数据库过程详解
Aug 27 Python
Django框架 查询Extra功能实现解析
Sep 04 Python
redis数据库及与python交互用法简单示例
Nov 01 Python
解决Python安装cryptography报错问题
Sep 03 Python
python用tkinter实现一个简易能进行随机点名的界面
Sep 27 Python
Django Auth用户认证组件实现代码
Oct 13 Python
Python爬虫实战案例之爬取喜马拉雅音频数据详解
Dec 07 Python
jupyter 添加不同内核的操作
Feb 06 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常用特殊运算符号和函数总结(php新手入门必看)
2013/02/02 PHP
php+mysql实现简单登录注册修改密码网页
2016/11/30 PHP
php实现的生成迷宫与迷宫寻址算法完整实例
2017/11/06 PHP
PHP For循环字母A-Z当超过26个字母时输出AA,AB,AC
2020/02/16 PHP
Prototype使用指南之selector.js
2007/01/10 Javascript
JavaScript 编程引入命名空间的方法与代码
2007/08/13 Javascript
JS 字符串连接[性能比较]
2009/05/10 Javascript
在chrome浏览器中,防止input[text]和textarea在聚焦时出现黄色边框的解决方法
2011/05/24 Javascript
jQuery获取Select选择的Text和Value(详细汇总)
2013/01/25 Javascript
javascript得到当前页的来路即前一页地址的方法
2014/02/18 Javascript
在JavaScript中处理数组之reverse()方法的使用
2015/06/09 Javascript
AngularJS实现单独作用域内的数据操作
2016/09/05 Javascript
jQuery zTree搜索-关键字查询 递归无限层功能实现代码
2018/01/25 jQuery
JS简单获得节点元素的方法示例
2018/02/10 Javascript
javaScript实现游戏倒计时功能
2018/11/17 Javascript
微信小程序canvas.drawImage完全显示图片问题的解决
2018/11/30 Javascript
实现一个Vue自定义指令懒加载的方法示例
2020/06/04 Javascript
JavaScript日期库date-fn.js使用方法解析
2020/09/09 Javascript
浅谈Ant Design Pro 菜单自定义 icon
2020/11/17 Javascript
js实现简易计算器小功能
2020/11/18 Javascript
Python中%r和%s的详解及区别
2017/03/16 Python
Caffe均值文件mean.binaryproto转mean.npy的方法
2018/07/09 Python
Python hashlib常见摘要算法详解
2020/01/13 Python
Scrapy基于scrapy_redis实现分布式爬虫部署的示例
2020/09/29 Python
班组长的岗位职责
2013/12/09 职场文书
学前教育毕业生自荐信范文
2013/12/24 职场文书
坚定理想信念心得体会
2014/03/11 职场文书
村容村貌整治方案
2014/05/21 职场文书
安全生产承诺书范文
2014/05/22 职场文书
房屋维修协议书范本
2014/09/25 职场文书
党员个人批评与自我批评
2014/10/14 职场文书
英语邀请函范文
2015/02/02 职场文书
2015年党总支工作总结
2015/05/25 职场文书
图解上海144收音机
2021/04/22 无线电
MySQL 数据丢失排查案例
2021/05/08 MySQL
用python批量解压带密码的压缩包
2021/05/31 Python