【问题标题】:How can I check which Django middleware is synchronous or asynchronous?如何检查哪个 Django 中间件是同步的还是异步的?
【发布时间】:2021-06-02 22:02:38
【问题描述】:

我正在使用 Django 3.1。我想看看我是否可以使用 async 来处理我的 webhook 以提供更快的响应。

来自Async View,它声明:

可以构建中间件来支持同步和异步上下文。 Django 的一些中间件是这样构建的,但不是全部。要查看 Django 必须适应哪些中间件,您可以为 django.request 记录器打开调试日志记录,并查找有关“同步中间件……已适应”的日志消息。

我的问题是如何打开我的记录器来检查它?

我尝试将记录器配置添加到我的 settings.py。之后,我在测试函数中调用logger.debug('in index'),但没有显示任何内容。我找不到日志消息“同步中间件……已适配”。

LOGGING = {  
 'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
    },
    'root': {
        'handlers': ['console'],
        'level': 'WARNING',
    },
    'loggers': {
        'django.request': {
            'handlers': ['console'],
            'level': os.getenv('DJANGO_LOG_LEVEL', 'INFO'),
            'propagate': False,
        },
    },
}

【问题讨论】:

    标签: django django-3.1


    【解决方案1】:

    您需要像这样设置记录器:

    LOGGING = {  
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'console': {
                'class': 'logging.StreamHandler',
            },
        },
        'loggers': {
            'django.request': {
                'handlers': ['console'],
                'level': os.getenv('DJANGO_LOG_LEVEL', 'DEBUG'),
                'propagate': False,
            },
        },
    }
    

    注意记录器设置中的日志级别“DEBUG”。

    但它并没有为您提供中间件及其模式的完整列表。它只显示了经过调整的中间件。

    【讨论】:

      猜你喜欢
      • 2020-02-21
      • 1970-01-01
      • 2017-02-28
      • 2015-11-12
      • 2020-05-15
      • 2013-02-25
      • 2012-12-30
      • 2014-04-25
      • 1970-01-01
      相关资源
      最近更新 更多