基于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网络编程示例(客户端与服务端)
Apr 24 Python
python获取Linux下文件版本信息、公司名和产品名的方法
Oct 05 Python
深入理解Python中字典的键的使用
Aug 19 Python
Python的净值数据接口调用示例分享
Mar 15 Python
python merge、concat合并数据集的实例讲解
Apr 12 Python
对python numpy.array插入一行或一列的方法详解
Jan 29 Python
linux中如何使用python3获取ip地址
Jul 15 Python
Django之创建引擎索引报错及解决详解
Jul 17 Python
python实现最大优先队列
Aug 29 Python
python GUI库图形界面开发之PyQt5布局控件QGridLayout详细使用方法与实例
Mar 06 Python
Python实现常见的几种加密算法(MD5,SHA-1,HMAC,DES/AES,RSA和ECC)
May 09 Python
Python制作简单的剪刀石头布游戏
Dec 10 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闭包函数传参及使用外部变量的方法
2016/03/15 PHP
nginx 设置多个站跨域
2021/03/09 Servers
document对象execCommand的command参数介绍
2006/08/01 Javascript
用jscript启动sqlserver
2007/06/21 Javascript
setAttribute 与 class冲突解决
2008/02/17 Javascript
jquery focus(fn),blur(fn)方法实例代码
2011/12/16 Javascript
js中eval详解
2012/03/30 Javascript
你必须知道的Javascript知识点之"字面量和对应类型"说明介绍
2013/04/23 Javascript
js验证IP及子网掩码的合法性有效性示例
2014/04/30 Javascript
基于NodeJS的前后端分离的思考与实践(三)轻量级的接口配置建模框架
2014/09/26 NodeJs
JS实现按比例缩放图片的方法(附C#版代码)
2015/12/08 Javascript
JS中用try catch对代码运行的性能影响分析
2016/12/26 Javascript
JS实现数组简单去重及数组根据对象中的元素去重操作示例
2018/01/05 Javascript
vuejs 切换导航条高亮(路由菜单高亮)的方法示例
2018/05/29 Javascript
NodeJs操作MongoDB教程之分页功能以及常见问题
2019/04/09 NodeJs
[52:37]完美世界DOTA2联赛循环赛 Forest vs DM BO2第一场 10.29
2020/10/29 DOTA
python监控网站运行异常并发送邮件的方法
2015/03/13 Python
python实现可视化动态CPU性能监控
2018/06/21 Python
Python中应该使用%还是format来格式化字符串
2018/09/25 Python
Python Numpy:找到list中的np.nan值方法
2018/10/30 Python
在python中bool函数的取值方法
2018/11/01 Python
python基于FTP实现文件传输相关功能代码实例
2019/09/28 Python
python实现双人五子棋(终端版)
2020/12/30 Python
css3+jq创作含苞待放的荷花
2014/02/20 HTML / CSS
介绍一下gcc特性
2015/10/31 面试题
成人教育自我鉴定
2013/11/01 职场文书
汽修专业学生自我鉴定
2013/11/16 职场文书
财务会计人员岗位职责
2013/11/30 职场文书
中秋节主持词
2014/04/02 职场文书
奖金申请报告模板
2015/05/15 职场文书
信息技术远程培训心得体会
2016/01/09 职场文书
学习党章心得体会2016
2016/01/15 职场文书
56句经典英文座右铭
2019/08/09 职场文书
班干部竞选演讲稿(精选5篇)
2019/09/24 职场文书
dubbo集成zipkin获取Traceid的实现
2021/07/26 Java/Android
Python中re模块的元字符使用小结
2022/04/07 Python