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
    
  • 相关阅读:
    原来 Sql Server 的存储过程是可以调试的
    网站SEO优化之如何发布外链
    7个有助于SEO优化的网站文章编辑技巧
    技术峰会2005
    SHA1算法告破
    Google Suggest
    Photo Story 3 for Windows XP
    SQL Server 2005: 价格和开源
    抱歉,昨天加班未能参加讨论
    2GB Hotmail comes!
  • 原文地址:https://www.cnblogs.com/luozx207/p/11056931.html
Copyright © 2011-2022 走看看