基于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 dataframe 输出结果整行显示的方法
Jun 14 Python
python3监控CentOS磁盘空间脚本
Jun 21 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Python解决线性代数问题之矩阵的初等变换方法
Dec 12 Python
python检测IP地址变化并触发事件
Dec 26 Python
Python开发网站目录扫描器的实现
Feb 21 Python
总结python中pass的作用
Feb 27 Python
python的re模块使用方法详解
Jul 26 Python
python 列表推导式使用详解
Aug 29 Python
Python中的四种交换数值的方法解析
Nov 18 Python
Python: 传递列表副本方式
Dec 19 Python
python编程进阶之异常处理用法实例分析
Feb 21 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 print EOF实现方法
2009/05/21 PHP
ThinkPHP框架设计及扩展详解
2014/11/25 PHP
php进行支付宝开发中return_url和notify_url的区别分析
2014/12/22 PHP
超简单的jquery的AJAX用法
2010/05/10 Javascript
nodejs教程 安装express及配置app.js文件的详细步骤
2013/05/11 NodeJs
jquery操作下拉列表、文本框、复选框、单选框集合(收藏)
2014/01/08 Javascript
浅谈JavaScript中Date(日期对象),Math对象
2015/02/05 Javascript
JavaScript实现的encode64加密算法实例分析
2015/04/15 Javascript
JS实现的简洁二级导航菜单雏形效果
2015/10/13 Javascript
js中substring和substr两者区别和使用方法
2015/11/09 Javascript
轻松实现javascript数据双向绑定
2015/11/11 Javascript
jquery插件Jplayer使用方法简析
2016/04/22 Javascript
jQuery自定义元素右键点击事件(实现案例)
2017/04/28 jQuery
Webpack实现按需打包Lodash的几种方法详解
2017/05/08 Javascript
angular中使用Socket.io实例代码
2017/06/03 Javascript
jquery实现图片放大点击切换
2017/06/06 jQuery
jQuery Form插件使用详解_动力节点Java学院整理
2017/07/17 jQuery
详解Vue2 SSR 缓存 Api 数据
2017/11/20 Javascript
JS多个异步请求 按顺序执行next实现解析
2019/09/16 Javascript
JavaScript DOM常用操作代码汇总
2020/07/03 Javascript
vue-calendar-component 封装多日期选择组件的实例代码
2020/12/04 Vue.js
python使用分治法实现求解最大值的方法
2015/05/12 Python
高效测试用例组织算法pairwise之Python实现方法
2017/07/19 Python
Python使用Turtle模块绘制五星红旗代码示例
2017/12/11 Python
python2 与python3的print区别小结
2018/01/16 Python
基于Python实现大文件分割和命名脚本过程解析
2019/09/29 Python
python圣诞树编写实例详解
2020/02/13 Python
python 通过 pybind11 使用Eigen加速代码的步骤
2020/12/07 Python
联想哥伦比亚网上商城:Lenovo Colombia
2017/01/10 全球购物
个人教师自我评价范文
2013/12/02 职场文书
电子专业自荐信
2014/07/01 职场文书
应届毕业生求职信范文
2014/07/07 职场文书
领导班子整改方案
2014/10/25 职场文书
公司备用金管理制度
2015/08/04 职场文书
Oracle 临时表空间SQL语句的实现
2021/09/25 Oracle
Apache Pulsar集群搭建部署详细过程
2022/02/12 Servers