两条记录为一行的日志消息

时间:2018-09-14 13:39:13

标签: python logging

我正在从在脚本的各处使用print()语句迁移到更严格的日志记录系统。我正在使用logging模块来管理任务。我似乎无法实现一件事:

在某些情况下,我想在两个不同的步骤中创建一个日志条目,但记录在同一行上。经典地看起来像这样:

Initiating procedure... OK

在这种情况下,仅在任务成功时才记录OK部分。

我以前是通过以下打印命令来实现的:

print('Initiating procedure... ', end="", flush=True)
...
print('OK')

是否可以通过logging模块来实现类似的目的?像

logging.info("First message", end="", flush=True)
...
logging.info("OK")

1 个答案:

答案 0 :(得分:2)

您可以将BufferingHandler(例如MemoryHandler)与自定义格式化程序一起使用来实现所需的功能。这种方法将记录缓冲在内存中直到刷新,然后刷新写入目标处理程序,并允许您将两个日志记录潜在地合并为一个输出事件。