记录为单个lin的两条日志消息

2024-04-23 06:10:37 发布

您现在位置:Python中文网/ 问答频道 /正文

我正在从脚本中到处使用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")

Tags: 模块info脚本truelogging系统记录情况
2条回答

您可以将BufferingHandler^{}与自定义格式化程序一起使用,以实现所需的功能。这种方法会在内存中缓冲记录,直到刷新为止,刷新会写入目标处理程序,并允许您潜在地将两个日志记录合并到单个输出事件中。你知道吗

我不确定这是个好主意。我不认为日志应该这样使用。您经常会在日志消息之前看到有关日期、时间和日志消息性质的信息。你知道吗

你真的想要这样的台词吗:

INFO:ROOT 2018-09-01 22:12:13 Initiating procedure... INFO:ROOT 2018-09-01 22:12:17 OK

在同一条线上?你知道吗

通常,您会使用其他技术解析日志(我经常使用awk解析日志),我相信我会对这种日志感到非常不安。你知道吗

相关问题 更多 >