基于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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python跳出循环语句continue与break的区别
Aug 25 Python
python实现颜色rgb和hex相互转换的函数
Mar 19 Python
利用python获取某年中每个月的第一天和最后一天
Dec 15 Python
Python 字典与字符串的互转实例
Jan 13 Python
使用python实现快速搭建简易的FTP服务器
Sep 12 Python
python打印9宫格、25宫格等奇数格 满足横竖斜相加和相等
Jul 19 Python
详解Anconda环境下载python包的教程(图形界面+命令行+pycharm安装)
Nov 11 Python
Python如何批量获取文件夹的大小并保存
Mar 31 Python
解决python 虚拟环境删除包无法加载的问题
Jul 13 Python
Python Pandas数据分析之iloc和loc的用法详解
Nov 11 Python
Python实现日志实时监测的示例详解
Apr 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
处理单名多值表单的详解
2013/06/08 PHP
兼容ie6浏览器的php下载文件代码分享
2014/07/14 PHP
php使用Jpgraph绘制3D饼状图的方法
2015/06/10 PHP
PHP Header失效的原因分析及解决方法
2016/11/16 PHP
PHP用函数嵌入网站访问量计数器
2017/10/27 PHP
JQUERY复选框CHECKBOX全选,取消全选
2008/08/30 Javascript
javaScript 读取和设置文档元素的样式属性
2009/04/14 Javascript
jquery 最简单的属性菜单
2009/10/08 Javascript
juqery 学习之四 筛选过滤
2010/11/30 Javascript
jQuery-Tools-overlay 使用介绍
2012/07/14 Javascript
node.js+Ajax实现获取HTTP服务器返回数据
2014/11/26 Javascript
bootstrap模态框实现拖拽效果
2016/12/14 Javascript
JavaScript中的call和apply的用途以及区别
2017/01/11 Javascript
vue-hook-form使用详解
2017/04/07 Javascript
详解Angular之constructor和ngOnInit差异及适用场景
2017/06/22 Javascript
关于使用axios的一些心得技巧分享
2017/07/02 Javascript
Angular6 正则表达式允许输入部分中文字符
2018/09/10 Javascript
Vue项目数据动态过滤实践及实现思路
2018/09/11 Javascript
webpack实现一个行内样式px转vw的loader示例
2018/09/13 Javascript
使用vue实现HTML页面生成图片的方法
2020/03/12 Javascript
jQuery是用来干什么的 jquery其实就是一个js框架
2021/02/04 jQuery
python协程用法实例分析
2015/06/04 Python
利用Python为iOS10生成图标和截屏
2016/09/24 Python
python 读取文件并替换字段的实例
2018/07/12 Python
Python3爬虫爬取英雄联盟高清桌面壁纸功能示例【基于Scrapy框架】
2018/12/05 Python
django的auth认证,authenticate和装饰器功能详解
2019/07/25 Python
利用python实现周期财务统计可视化
2019/08/25 Python
pandas 缺失值与空值处理的实现方法
2019/10/12 Python
Python如何脚本过滤文件中的注释
2020/05/27 Python
python 邮件检测工具mmpi的使用
2021/01/04 Python
Stutterheim瑞典:瑞典高级外套时装品牌
2019/06/24 全球购物
高中毕业生自我鉴定例文
2013/12/29 职场文书
2014年法务工作总结
2014/12/11 职场文书
先进党支部申报材料
2014/12/24 职场文书
2015幼儿园新学期寄语
2015/02/27 职场文书
Python3 使用pip安装git并获取Yahoo金融数据的操作
2021/04/08 Python