gpt4 book ai didi

python - 实现非阻塞远程日志处理程序

转载 作者:可可西里 更新时间:2023-11-01 16:36:08 26 4
gpt4 key购买 nike

<分区>

我正在尝试实现简单的日志处理程序,它使用 Python 的标准 logging 库将事件记录到远程服务器。因此,我创建了继承自 logging.Handler 的自定义类,称为 RemoteLogHandler,它接受 LogRecord 并将其发送到远程服务器。处理程序以标准的 addHandler() 方式附加到根记录器。

from urllib import requests

class RemoteLogHandler(logging.Handler):
def emit(self, record):
remote_url = "http://foo.bar.baz"
req = request.Request(remote_url, data=record.msg)
request.urlopen(req, timeout=1)

这按预期工作,但当 remote_url 变得不可访问或开始响应缓慢时,显然会导致调用线程锁定。因此,我试图找到使此调用独立于调用线程的最佳方法。

我的想法:

  1. 包括一些使 http 请求异步的非标准库
  2. 按照概述使用 QueueHandler 和 QueueListener here
  3. 使用异步

所有这些解决方案对于实现如此简单的任务来说似乎都过于复杂/不必要。是否有一些开销更少的更好方法来使该处理程序成为非阻塞的?

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com