Python - 是否可以让 logging.handlers.httpHandler 将内容标头设置为 JSON 而无需求助于自定义代码?

问题描述

我想使用 Python 的 logging.handlers.HTTPHandler 使用 POST 和 JSON 格式的日志事件发送日志事件。但是我不想诉诸于编写扩展 - 因此可以使用文件或代码来实现配置。我编写了以下代码来配置记录器并发送测试消息。正在接收事件但似乎没有将内容类型设置为 JSON

import logging,logging.handlers
testHandler = logging.handlers.HTTPHandler('localhost:18080','/test',method='POST')
log = logging.getLogger("me")
log.addHandler(testHandler)
log.warn ('{"beep":"beep"}')

我错过了一个配置吗?

解决方法

这是不可能的,尤其是当您使用 POST 方法时。 HTTPHandler 是 hardcoded,用于将所有 POST 请求的内容类型标头设置为 application/x-www-form-urlencoded

您能做的最好的事情是继承 HTTPHandler 并实现 emit() 方法的自定义版本。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...