我正在从在脚本的各处使用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")
答案 0 :(得分:2)
您可以将BufferingHandler
(例如MemoryHandler
)与自定义格式化程序一起使用来实现所需的功能。这种方法将记录缓冲在内存中直到刷新,然后刷新写入目标处理程序,并允许您将两个日志记录潜在地合并为一个输出事件。