首页 > 解决方案 > 如何在 sanic 中记录所有传入请求和对所有 api 的出站响应

问题描述

我已经尝试登录每个函数,但为了制作一个通用函数并避免使用相同的 logger.info(),我想使用 sanic 的 logging 属性。

研究它我得到了旋转记录器的信息,但它没有记录请求数据及其标头以及正在发送的响应。我应该在日志配置中包含什么?

这是我的日志配置

LOG_SETTINGS = {
        'version': 1,
        'disable_existing_loggers': False,
        'handlers': {
            'rotating_log_handler': {
                'level': 'DEBUG',
                'class': 'logging.handlers.RotatingFileHandler',
                'filename': '/var/log/fynd/hogwarts.log',
                'maxBytes': 1024 * 1024 * 50,
                'backupCount': 10,
                'formatter': 'log_formatter'
            },
            'console': {
                'level': 'DEBUG',
                'class': 'logging.StreamHandler',
                'formatter': 'console'
            },
        },
        'formatters': {
            'log_formatter': {
                '()': 'pycommon.logger.jsonformatter.JsonFormatter',
            },
            'console': {
                'format': '[%(asctime)s][%(levelname)s] %(name)s '
                          '%(filename)s:%(funcName)s:%(lineno)d | %(message)s',
                'datefmt': '%H:%M:%S',
            },
        },
        'loggers': {
            '': {
                'level': 'DEBUG',
                'handlers': ['rotating_log_handler'],
                'propagate': True
            },
        }
    }

标签: pythonsanic

解决方案


推荐阅读