基于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实现QQ游戏大家来找茬辅助工具
Sep 14 Python
Python中的模块导入和读取键盘输入的方法
Oct 16 Python
python九九乘法表的实例
Sep 26 Python
浅谈Django学习migrate和makemigrations的差别
Jan 18 Python
PyQt5每天必学之弹出消息框
Apr 19 Python
解决python升级引起的pip执行错误的问题
Jun 12 Python
python 列表,数组和矩阵sum的用法及区别介绍
Jun 28 Python
pytorch自定义初始化权重的方法
Aug 17 Python
Python类中self参数用法详解
Feb 13 Python
python检查目录文件权限并修改目录文件权限的操作
Mar 11 Python
PyCharm+PyQt5+QtDesigner配置详解
Aug 12 Python
python 利用openpyxl读取Excel表格中指定的行或列教程
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 遍历显示文件夹下所有目录、所有文件的函数,没有分页的代码
2008/11/14 PHP
PHP常用文件操作函数和简单实例分析
2016/06/03 PHP
Thinkphp批量更新数据的方法汇总
2016/06/29 PHP
Gird事件机制初级读本
2007/03/10 Javascript
Prototype1.6 JS 官方下载地址
2007/11/30 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
JS 屏蔽键盘不可用与鼠标右键不可用的方法
2013/11/18 Javascript
js触发onchange事件的方法说明
2014/03/08 Javascript
动态加载iframe时get请求传递中文参数乱码解决方法
2014/05/07 Javascript
JavaScript实现表格点击排序的方法
2015/05/11 Javascript
JavaScript合并两个数组并去除重复项的方法
2015/06/13 Javascript
javascript常用功能汇总
2015/07/05 Javascript
解决微信内置浏览器返回上一页强制刷新问题方法
2017/02/05 Javascript
es6学习笔记之Async函数基本教程
2017/05/11 Javascript
微信小程序模版渲染详解
2018/01/26 Javascript
JavaScript实现简单动态进度条效果
2018/04/06 Javascript
微信小程序中进行地图导航功能的实现方法
2018/06/29 Javascript
koa2实现登录注册功能的示例代码
2018/12/03 Javascript
微信小程序 button样式设置为图片的方法
2020/06/19 Javascript
vue移动端下拉刷新和上滑加载
2020/10/27 Javascript
浅谈vue在html中出现{{}}的原因及解决方式
2020/11/16 Javascript
[01:02:34]TFT vs VGJ.T Supermajor 败者组 BO3 第二场 6.5
2018/06/06 DOTA
通过数据库向Django模型添加字段的示例
2015/07/21 Python
Python3 Random模块代码详解
2017/12/04 Python
python如何修改装饰器中参数
2018/03/20 Python
django admin后台添加导出excel功能示例代码
2019/05/15 Python
python脚本后台执行方式
2019/12/21 Python
pyMySQL SQL语句传参问题,单个参数或多个参数说明
2020/06/06 Python
Web前端绘制0.5像素的几种方法
2017/08/11 HTML / CSS
英国最大的邮寄种子和植物公司:Thompson & Morgan
2017/09/21 全球购物
美体小铺印度官网:The Body Shop印度
2019/10/17 全球购物
奢华时尚的创新平台:Baltini
2020/10/03 全球购物
海量信息软件测试笔试题
2015/08/08 面试题
护士自我鉴定总结
2014/03/24 职场文书
评先进个人材料
2014/12/29 职场文书
CSS 实现角标效果的完整代码
2022/06/28 HTML / CSS