基于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中的赋值和深浅拷贝
Aug 15 Python
自学python的建议和周期预算
Jan 30 Python
在Python中居然可以定义两个同名通参数的函数
Jan 31 Python
Python3实现定时任务的四种方式
Jun 03 Python
python binascii 进制转换实例
Jun 12 Python
python pickle存储、读取大数据量列表、字典数据的方法
Jul 07 Python
python实现切割url得到域名、协议、主机名等各个字段的例子
Jul 25 Python
python opencv图片编码为h264文件的实例
Dec 12 Python
10行Python代码实现Web自动化管控的示例代码
Aug 14 Python
Python如何执行系统命令
Sep 23 Python
Python中常见的导入方式总结
May 06 Python
python引入其他文件夹下的py文件具体方法
May 23 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安装攻略:常见问题解答(三)
2006/10/09 PHP
PHP的substr_replace将指定两位置之间的字符替换为*号
2011/05/04 PHP
eaglephp使用微信api接口开发微信框架
2014/01/09 PHP
php从字符串创建函数的方法
2015/03/16 PHP
PHP实现动态柱状图改进版
2015/03/30 PHP
微信第三方登录(原生)demo【必看篇】
2017/05/26 PHP
PHP排序算法之堆排序(Heap Sort)实例详解
2018/04/21 PHP
PHP堆栈调试操作简单示例
2018/06/15 PHP
JavaScript的面向对象(二)
2006/11/09 Javascript
firefox火狐浏览器与与ie兼容的2个问题总结
2010/07/20 Javascript
在IE 浏览器中使用 jquery的fadeIn() 效果 英文字符字体加粗
2011/06/02 Javascript
Javascript图像处理—亮度对比度应用案例
2013/01/03 Javascript
常用jQuery选择器总结
2014/07/11 Javascript
javascript中的Base64、UTF8编码与解码详解
2015/03/18 Javascript
jquery UI Datepicker时间控件的使用及问题解决
2016/04/28 Javascript
Angular2 环境配置详细介绍
2016/09/21 Javascript
详解Vuejs2.0 如何利用proxyTable实现跨域请求
2017/08/03 Javascript
angular 用Observable实现异步调用的方法
2018/12/27 Javascript
[10:14]2018DOTA2国际邀请赛寻真——paiN Gaming不仅为自己而战
2018/08/14 DOTA
python创建进程fork用法
2015/06/04 Python
Python 实现数据库更新脚本的生成方法
2017/07/09 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
利用Python+Java调用Shell脚本时的死锁陷阱详解
2018/01/24 Python
Python面向对象程序设计OOP深入分析【构造函数,组合类,工具类等】
2019/01/05 Python
Python分支语句与循环语句应用实例分析
2019/05/07 Python
python 魔法函数实例及解析
2019/09/25 Python
python 实现生成均匀分布的点
2019/12/05 Python
如何以Winsows Service方式运行JupyterLab
2020/08/30 Python
Python实现AES加密,解密的两种方法
2020/10/03 Python
蛋糕店的商业计划书范文
2014/01/27 职场文书
总经理司机职责
2014/02/02 职场文书
挂牌仪式策划方案
2014/05/18 职场文书
关于vue中如何监听数组变化
2021/04/28 Vue.js
alibaba seata服务端具体实现
2022/02/24 Java/Android
Java 中的 Lambda List 转 Map 的多种方法详解
2022/07/07 Java/Android
Nginx如何配置根据路径转发详解
2022/07/23 Servers