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
    
  • 相关阅读:
    Doing Homework 简单dp&&状态压缩
    嫖裤子序列
    王宁宁宁
    友军寻路法
    Viviani
    ccf 201909-3
    ccf 201909-5
    链式前向星
    ccf-201909-04
    ccf -201909-2
  • 原文地址:https://www.cnblogs.com/luozx207/p/11056931.html
Copyright © 2011-2022 走看看