我想修改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
以返回格式化的相对时间。
首先出现在我的脑海中。
- 计算脚本启动时间与当前时间之间的时间增量。
- 为此使用日期时间模块(计算到epoh秒并返回时间戳)。
- 通过登录模块将结果插入消息部分。
我现在不放任何代码来激励您阅读有关提到的模块的更多信息)。
我不确定您可以使用logging
python模块来做到这一点(我可能是错的)。
但是,如果您需要应用程序的运行时,我会说您应该在变量中捕获应用程序启动的时间(使用 time
模块)。捕获时间后,您可以将该变量传递给记录器,以计算遇到错误时的差值。