如何解决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()
方法的自定义版本。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。