zoukankan      html  css  js  c++  java
  • 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:	cp_checkvenvlibsite-packagesdjangocorehandlersexception.py", line 35, in inner
        response = get_response(request)
      File "E:	cp_checkvenvlibsite-packagesdjangocorehandlersase.py", line 128, in _get_response
        response = self.process_exception_by_middleware(e, request)
      File "E:	cp_checkvenvlibsite-packagesdjangocorehandlersase.py", line 126, in _get_response
        response = wrapped_callback(request, *callback_args, **callback_kwargs)
      File "E:	cp_check	cp_test_appviews.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
    
  • 相关阅读:
    Linux忘了root的密码怎么办
    缩略图的实现
    ASP.NET程序编写注意 (转载)
    太极拳
    Linux系统管理技巧大荟萃
    茶经(转载)
    datagrid的显示控制
    太极功
    Linux下硬盘分区详解
    Tomcat4.0中文问题简单解决方法
  • 原文地址:https://www.cnblogs.com/luozx207/p/11056931.html
Copyright © 2011-2022 走看看