我希望总结特定事件发生的次数以及何时出现非常重要的事情。我举个例子......
我的代码建立了一个ssh连接并运行命令。每次脚本失去与ssh服务器的连接时,都会引发异常并进行处理。假设这种类型的异常在多个文件中以不同的方式处理。如何记录处理的次数?这不是特例。例如,如果我运行命令并获得某个响应,我想要注意这是发生的。当脚本结束时,我需要记录所有这些(我已经知道如何设置记录器)。
这样做的原因是我的脚本记录了大量信息,我希望能够快速总结日志文件末尾发生的重要事情。
tldr;如何记录事件发生的次数/何时在多个文件中发生某些事情,以便我可以在脚本结束时记录它?
答案 0 :(得分:1)
尝试子类化logging.Handler
并覆盖handle
或emit
方法以检查发送的消息并在适当的位置递增计数器,然后将此处理程序添加到应用程序的根记录器中这样:
import logging
counter = 0
class CounterHandler(logging.Handler):
def emit(self, record):
global counter
if record.msg == "Connection lost. Reconnecting.":
counter += 1
root_logger = logging.getLogger()
root_logger.addHandler(CounterHandler())
您可以对其进行扩展,使其更加通用或强大,但这是实现您所需要的一种方式。
答案 1 :(得分:0)
我假设multiple files
你的意思是你有多个单独的脚本在运行,你想记录一些在所有这些脚本中发生的事件的综合摘要。
如果您有一个脚本,通过维护dict并将其转储到日志文件或者可能覆盖单个摘要文件很容易,对于多个脚本,您可以运行单独的日志记录服务器,所有脚本用于记录或至少添加和转储摘要信息,或者您可以使用具有表锁定的公共数据库