gpt4 book ai didi

python - 如何启用日志记录以便消息保留在内部直到获取/清除?

转载 作者:太空宇宙 更新时间:2023-11-03 17:18:31 27 4
gpt4 key购买 nike

在应用程序中,我想收集与处理的某些专用部分相关的消息,然后根据用户请求显示这些消息。我想报告严重性(例如信息、警告)、消息时间等,因此为此我考虑使用 Python 标准 logging模块收集消息和相关信息。但是,我不希望这些消息发送到控制台或文件。

有没有办法使用logging创建Python记录器,其中消息仅保留在内部(内存中),直到被应用程序读出。我希望代码开始如下:

log = logging.getLogger('my_logger')
... some config of log for internal only; not to console
log.error('Just some error')
... some code to get/clear messages in log until now

我尝试查看 logging — Logging facility for Python ,但大多数示例都是为了立即输出到文件或控制台,因此欢迎提供内部日志记录或引用的示例。

最佳答案

您应该使用另一个处理程序。您可以在 io.StringIO 上使用 StreamHandler,它只会记录到内存中:

log = logging.getLogger('my_logger')
memlog = io.StringIO()
log.addHandler(logging.StreamHandler(memlog))

发送到log的所有日志记录都可以在memlog.getvalue()中找到

当然,这只是一个简单的处理程序,它将所有内容连接到一个字符串中,即使对于 >= 3.2 的版本,每个记录都会默认以 \n 终止。对于更具体的要求,您可以查看 QueueHandler 或实现专用的 Handler

引用文献:logging.handlers Python 标准库引用手册中。

关于python - 如何启用日志记录以便消息保留在内部直到获取/清除?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33412018/

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