基于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 httplib模块使用实例
Apr 11 Python
使用Python中的greenlet包实现并发编程的入门教程
Apr 16 Python
Python与Redis的连接教程
Apr 22 Python
Python自定义类的数组排序实现代码
Aug 28 Python
Python3.6简单的操作Mysql数据库的三个实例
Oct 17 Python
python 去除二维数组/二维列表中的重复行方法
Jan 23 Python
使用python的pexpect模块,实现远程免密登录的示例
Feb 14 Python
Python 编程速成(推荐)
Apr 15 Python
python中enumerate() 与zip()函数的使用比较实例分析
Sep 03 Python
Python 解决OPEN读文件报错 ,路径以及r的问题
Dec 19 Python
python 实现朴素贝叶斯算法的示例
Sep 30 Python
Python定时任务框架APScheduler原理及常用代码
Oct 05 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防止sql注入之过滤分页参数实例
2014/11/03 PHP
WordPress中用于获取及自定义头像图片的PHP脚本详解
2015/12/17 PHP
使用PHP免费发送定时短信的实例
2016/10/24 PHP
thinkPHP自定义类实现方法详解
2016/11/30 PHP
php post json参数的传递和接收处理方法
2018/05/31 PHP
详解Laravel5.6 Passport实现Api接口认证
2018/07/27 PHP
PHP让网站移动访问更加友好方法
2019/02/14 PHP
模仿JQuery sortable效果 代码有错但值得看看
2009/11/05 Javascript
Javascript 遮罩层和加载效果代码
2013/08/01 Javascript
把jquery 的dialog和ztree结合实现步骤
2013/08/02 Javascript
移动节点的jquery代码
2014/01/13 Javascript
jquery实现文本框数量加减功能的例子分享
2014/05/10 Javascript
js实现按钮控制图片360度翻转特效的方法
2015/02/17 Javascript
js实现的二级横向菜单条实例
2015/08/22 Javascript
node.js抓取并分析网页内容有无特殊内容的js文件
2015/11/17 Javascript
AngularJs bootstrap搭载前台框架——基础页面
2016/09/01 Javascript
javascript中数组(Array)对象和字符串(String)对象的常用方法总结
2016/12/15 Javascript
JS去除字符串中空格的方法
2017/02/14 Javascript
jquery Form轻松实现文件上传
2017/05/24 jQuery
过滤器vue.filters的使用方法实现
2019/09/18 Javascript
Javascript实现简易天数计算器
2020/05/18 Javascript
[26:50]2018完美盛典DOTA2表演赛
2018/12/17 DOTA
Python中的异常处理相关语句基础学习笔记
2016/07/11 Python
Python快速转换numpy数组中Nan和Inf的方法实例说明
2019/02/21 Python
简单了解python高阶函数map/reduce
2019/06/28 Python
Keras在训练期间可视化训练误差和测试误差实例
2020/06/16 Python
Python进行统计建模
2020/08/10 Python
python3.7 openpyxl 在excel单元格中写入数据实例
2020/09/01 Python
Python实现曲线拟合的最小二乘法
2021/02/19 Python
为什么如下的代码int a=100,b=100;long int c=a * b;不能工作
2013/11/29 面试题
培训心得体会
2013/12/29 职场文书
大学校园毕业自我鉴定
2014/01/15 职场文书
创优争先心得体会
2014/09/11 职场文书
《去年的树》教学反思
2016/02/18 职场文书
python基于tkinter制作m3u8视频下载工具
2021/04/24 Python
Python+Tkinter制作专属图形化界面
2022/04/01 Python