如何将python日志记录更改为显示从脚本执行开始经过的时间?
我想修改python日志记录,以记录脚本启动(或日志记录模块初始化)后经过的时间 我在日志模块中找到了如何将python日志记录更改为显示从脚本执行开始经过的时间?,python,logging,Python,Logging,我想修改python日志记录,以记录脚本启动(或日志记录模块初始化)后经过的时间 我在日志模块中找到了relativeCreated变量,但这给了我毫秒级的精度,这只会对日志进行垃圾邮件处理,更难看到时间的去向或日志运行的方式 我怎样才能做到这一点?我不确定您是否可以使用日志记录python模块做到这一点(我可能错了) 但是,如果您需要应用程序的运行时,我会说您应该在变量中捕获应用程序启动时的时间(使用time模块)。一旦捕捉到时间,您就可以将该变量传递给记录器,以便在遇到错误时计算差值。首先,
relativeCreated
变量,但这给了我毫秒级的精度,这只会对日志进行垃圾邮件处理,更难看到时间的去向或日志运行的方式
我怎样才能做到这一点?我不确定您是否可以使用
日志记录
python模块做到这一点(我可能错了)
但是,如果您需要应用程序的运行时,我会说您应该在变量中捕获应用程序启动时的时间(使用
time
模块)。一旦捕捉到时间,您就可以将该变量传递给记录器,以便在遇到错误时计算差值。首先,我会想到这一点
现在,我没有编写任何代码来激励您阅读更多关于提到的模块的内容。您可以使用
logging.Formatter
子类,该子类从LogRecord
传递到其format
方法,将其格式化为分钟:秒,并以格式字符串的形式输出,例如,在格式字符串中使用不同的占位符,例如%(adjustedTime)s
:
您可以将
格式定义为_分钟_和_秒
以返回格式化的相对时间。为什么?为什么不在程序启动时记录呢?如果没有完整日期,您的日志将丢失一些上下文。可以通过创建格式字符串来设置日志消息的格式:Format='%(asctime)-15s%(消息)s';logging.basicConfig(format=format)
Vinay的回答很好地解决了您的问题-您不想接受吗?
000:00 DEBUG bla bla
000:01 ERROR wow! ... this is measured in minutes:seconds
class MyFormatter(logging.Formatter):
def format(self, record):
record.adjustedTime = format_as_mins_and_secs(record.relativeCreated)
return super(MyFormatter, self).format(record)