我有一个编写的记录器模块(它继承自logging.Logger
,但我认为这不是讨论的重要细节)
我想在退出之前写一条最后一条消息,该消息将包含有关自脚本启动以来花费了多长时间的信息,依此类推。当脚本正常退出,调用sys.exit()
并引发未捕获的异常(例如assert失败)时,它应该可以工作。
我不确定执行此操作的正确方法是什么。我正在考虑使用将在__del__
上写消息的全局变量,但是我知道在python中并不总是这样。我考虑过使用atexit
,但不确定是否可以确保调用它,也不确定导入的模块是否可用(我也希望能够将消息写入远程服务器)。
我正在使用Python3.7
答案 0 :(得分:0)
检出atexit
模块。它适用于异常和sys.exit
import atexit
from datetime import datetime
from time import sleep
time_start = None
def main():
global time_start
time_start = datetime.now()
sleep(2)
atexit.register(log_total_time)
def log_total_time():
print('Elapsed:',datetime.now() - time_start)
if __name__ == "__main__":
main()
输出:
Elapsed: 0:00:02.417707