【发布时间】:2015-10-09 21:24:49
【问题描述】:
我想在 Python 的日志记录模块生成的日志中添加自上次记录日志以来经过的时间(秒/毫秒)。
这很有用,因此您可以查看日志文件以查看同一步骤是否总是花费相同的时间或发生变化,表明环境中发生了某些变化(例如数据库性能)。
我知道 %(relativeCreated)d,但这只是显示自记录器启动以来经过的时间,而不是自上次创建日志以来的时间。 基本上 %(relativeCreated)d 是累积值,我想看到的是每个 %(relativeCreated)d 之间的差异。
这就是你使用 %(relativeCreated)d 得到的结果:
2015-07-20 12:31:07,037 (7ms) - INFO - Process started....
2015-07-20 12:31:07,116 (87ms) - INFO - Starting working on xyz
2015-07-20 12:31:07,886 (857ms) - INFO - Progress so far
这就是我需要的:
2015-07-20 12:31:07,037 (duration: 7ms) - INFO - Process started....
2015-07-20 12:31:07,116 (duration: 80ms) - INFO - Starting working on xyz
2015-07-20 12:31:07,886 (duration: 770ms) - INFO - Progress so far
【问题讨论】:
-
记录事件应该相互独立。看来这更适合更高级别的日志分析工具。
-
@SimeonVisser 使其线程和进程安全是有意义的,但是在类似 ETL 的顺序脚本的情况下,每次设置全局变量都会很有用并且不会过于复杂logger 被调用,所以下次调用它时,它可以在再次设置之前获取差异并显示。显然,在多线程或多进程脚本中,显示此类“时间流逝”信息是没有意义的。
标签: python-3.x logging