如何更改 python 日志记录以显示从脚本执行开始经过的时间



我想修改python日志记录以记录从脚本启动(或初始化日志记录模块)开始经过的时间。

000:00 DEBUG bla bla
000:01 ERROR wow! ... this is measured in minutes:seconds

我在日志记录模块中找到了relativeCreated变量,但这给了我毫秒级的准确性,这只会向日志发送垃圾邮件,使查看时间的去向或运行日志的时间更加困难。

我该怎么做?

您可以使用一个logging.Formatter子类,该子类从传递给其format方法的LogRecord中获取relativeCreated,将其格式化为mins:secs并以格式字符串输出,例如在格式字符串中使用不同的占位符,例如%(adjustedTime)s

class MyFormatter(logging.Formatter):
    def format(self, record):
        record.adjustedTime = format_as_mins_and_secs(record.relativeCreated)
        return super(MyFormatter, self).format(record)

您可以在其中定义format_as_mins_and_secs以返回格式化的相对时间。

首先出现在我的脑海中。

  1. 计算脚本启动时间与当前时间之间的时间增量。
  2. 为此使用日期时间模块(计算到epoh秒并返回时间戳)。
  3. 通过登录模块将结果插入消息部分。

我现在不放任何代码来激励您阅读有关提到的模块的更多信息)。

我不确定您可以使用logging python模块来做到这一点(我可能是错的)。

但是,如果您需要应用程序的运行时,我会说您应该在变量中捕获应用程序启动的时间(使用 time 模块)。捕获时间后,您可以将该变量传递给记录器,以计算遇到错误时的差值。

最新更新