基于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框架代码的一些示例
Apr 20 Python
最基础的Python的socket编程入门教程
Apr 23 Python
python生成器表达式和列表解析
Mar 10 Python
Python模拟三级菜单效果
Sep 11 Python
python opencv之SIFT算法示例
Feb 24 Python
python中yaml配置文件模块的使用详解
Apr 27 Python
python 数据提取及拆分的实现代码
Aug 26 Python
Python warning警告出现的原因及忽略方法
Jan 31 Python
基于Python获取docx/doc文件内容代码解析
Feb 17 Python
Python读取JSON数据操作实例解析
May 18 Python
教你用Python matplotlib库制作简单的动画
Jun 11 Python
python实现MD5进行文件去重的示例代码
Jul 09 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
phpMyAdmin 安装教程全攻略
2007/03/19 PHP
从wamp到xampp的升级之路
2015/04/08 PHP
PHP中使用GD库绘制折线图 折线统计图的绘制方法
2015/11/09 PHP
php语言注释,单行注释和多行注释
2018/01/21 PHP
详解关于php的xdebug配置(编辑器vscode)
2019/01/29 PHP
php文件上传原理与实现方法详解
2019/12/20 PHP
JS 页面内容搜索,类似于 Ctrl+F功能的实现代码
2007/08/13 Javascript
用JavaScript显示随机图像或引用
2009/04/21 Javascript
JS实现点击图片在当前页面放大并可关闭的漂亮效果
2013/10/18 Javascript
自己用jQuery写了一个图片的马赛克消失效果
2014/05/04 Javascript
javascript父、子页面交互技巧总结
2014/08/08 Javascript
jQuery实现的自定义滚动条实例详解
2016/09/20 Javascript
微信小程序 数据访问实例详解
2016/10/08 Javascript
jQuery弹出窗口简单实现代码
2017/03/09 Javascript
angular4 JavaScript内存溢出问题
2018/03/06 Javascript
在react中使用vuex的示例代码
2018/07/30 Javascript
create-react-app安装出错问题解决方法
2018/09/04 Javascript
JS实现的A*寻路算法详解
2018/12/14 Javascript
Vue+Typescript中在Vue上挂载axios使用时报错问题
2019/08/07 Javascript
node.js 微信开发之定时获取access_token
2020/02/07 Javascript
Object.keys() 和 Object.getOwnPropertyNames() 的区别详解
2020/05/21 Javascript
AutoJs实现刷宝短视频的思路详解
2020/05/22 Javascript
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
跟老齐学Python之大话题小函数(1)
2014/10/10 Python
Django卸载之后重新安装的方法
2017/03/15 Python
基于python requests库中的代理实例讲解
2018/05/07 Python
python实现微信小程序用户登录、模板推送
2019/08/28 Python
Django发送邮件功能实例详解
2019/09/02 Python
使用python绘制cdf的多种实现方法
2020/02/25 Python
使用keras根据层名称来初始化网络
2020/05/21 Python
用python发送微信消息
2020/12/21 Python
CSS3 函数技巧 用css 实现js实现的事情(clac Counters Tooltip)
2017/08/15 HTML / CSS
css3动画 小球滚动 js控制动画暂停
2019/11/29 HTML / CSS
文秘人员工作职责
2014/01/31 职场文书
《山中访友》教学反思
2016/02/24 职场文书
为Centos安装指定版本的Docker
2022/04/01 Servers