#593·hug

日志中间件的问题

作者: JJ创建于 2017年11月19日更新于 2025年2月14日

所有这些都已上传到 https://GitHub.com/JJ/tests-Python,以防万一。不管怎样。我正在尝试使用 jsonlogger 来设置日志中间件,方法如下:

""" 在 JSON 中定义日志器 """
class Logger(object):
    def __init__(self):
        self.logger = logging.getLogger()
        logHandler = logging.StreamHandler()
        formatter = jsonlogger.JsonFormatter()
        logHandler.setFormatter(formatter)
        self.logger.addHandler(logHandler)
        
    def info(self, content):
        self.logger.info(content)
@hug.middleware_class()
class CustomLogger(LogMiddleware):
    def __init__(self, logger=Logger()):
        super().__init__(logger=logger)

据我所知,它应该在出厂时就能正常工作。然而,我在控制台上得到的结果是这样的:

Serving on port 8000...
127.0.0.1 - - [19/Nov/2017 10:19:41] "GET / HTTP/1.1" 200 16
127.0.0.1 - - [19/Nov/2017 10:19:50] "GET /status HTTP/1.1" 200 16

我是否做错了什么? 这东西不应该采用另一种格式吗? 我已经按照这里的说明 https://GitHub.com/madzak/Python-json-logger 进行了操作。

  • 更新 * 我添加了以下内容:
    def process_request(self, request, response):
        """记录请求的基本端点"""
        self.logger.info({ 'method': request.method,
                           'uri': request.relative_uri,
                           'type': request.content_type } )

    def process_response(self, request, response, resource):
        """记录 API 返回的基本数据"""
        self.logger.info( {'remote_addr':request.remote_addr,
                           't': current_time,
                           'method': request.method,
                           'uri': request.relative_uri,
                           'status': response.status,
                           'user-agent': request.user_agent })

但仍然似乎产生了相同的结果