我计划使用日志模块来监视每个脚本执行(事件)的运行时间。 我用了这个代码:
import logging
import time
logging.basicConfig(filename='example.log', filemode='w', format='%(asctime)s %(message)s', datefmt='%m/%d/%Y %I:%M:%S %p', level=logging.INFO)
logging.info('Start:')
time.sleep(5)
logging.info('Complete:')
print("Hello World!")
在示例.log我有这个:
^{pr2}$我的目标是:我想计算所用的时间,即完成和开始之间的时间,我不能轻易地减去09:16:20 PM-09:16:15 PM。在
我的问题是:如何在basicConfig中重新格式化datefmt,以便以秒为单位获得时间。我想做一个简单的操作,减去两个值,当它太长时进行监控。 谢谢
您可以尝试使用以下格式调用
basicConfig
:这将生成以下日志条目(您的时间将明显不同):
^{pr2}$我从你的问题推断出,你将在之后解析日志文件来计算持续时间。
%(created)f
产生自epoch以来经过的秒数作为浮点值,因此希望这将有助于您的计算。在Delorean可以帮助您解析和转换为常规的timedate对象,因此您可以确定增量。在
以下代码采用日志中的格式,可以计算增量:
输出为:
^{pr2}$st
和end
都是时区UTC的Delorean
对象,例如diff
是一个datetime.timedelta
对象,例如为了可读性,我建议您保留
basicConfig
原样,稍后当您阅读日志时,通过datetime
解析来提取日期和时间。E、 g组:这是你从纪元开始的秒数,因此很容易获得日志中连续行的时间戳之间的秒数差。(
.timestamp()
部分需要Python3.3或更高版本,但在早期版本中,您可以使用datetime
对象之间的差异,并对该时间差对象调用total_seconds
方法)。在相关问题 更多 >
编程相关推荐