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服务 ssh
    详细教你两台电脑之间传文件
    openstack之keystone
    Token
    mybatis返回刚刚插入数据的自增长的id值
    事务配置在applicationContext.xml文件中不起作用,控制不了异常回滚
    SSM框架整合
    ssm框架的小总结
    spring_mvc入门项目的小总结
    tcp和udp的网络编程(发送消息及回复)
  • 原文地址:https://www.cnblogs.com/luozx207/p/11056931.html
Copyright © 2011-2022 走看看