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

2024-06-01 06:07:43 发布

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

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

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

我在日志模块中找到了relativeCreated变量,但这只会使我获得毫秒级的准确度,这只会垃圾发送日志,从而使我们更难了解时间的去向或日志的运行时间。在

我该怎么做?在


Tags: 模块indebug脚本is记录时间error
3条回答

您可以使用logging.Formatter子类,该子类从传递给其format方法的LogRecord获取{},将其格式化为分钟:秒和在格式字符串中输出,例如在格式字符串中使用不同的占位符,例如%(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 secs进行计算并返回到时间戳)。在
  3. 通过loggin模块将结果插入消息部分。在

我现在并没有写任何代码来激励您阅读更多关于所提到的模块的信息)。在

我不确定您是否可以使用loggingpython模块来实现这一点(我可能错了)。在

但是,如果您需要应用程序的运行时,我建议您应该在一个变量中捕获应用程序启动时的时间(使用time模块)。一旦捕捉到时间,就可以将该变量传递给记录器,以便在遇到错误时计算差异。在

相关问题 更多 >