Python在退出之前记录最后一条退出消息

2024-04-25 18:04:19 发布

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

我编写了一些logger模块(它继承自logging.Logger,但我不认为这是讨论的重要细节)

我想在退出前写最后一条消息,此消息将包含脚本启动后所用时间等信息。它应该在脚本正常退出、调用sys.exit()以及引发未捕获的异常(例如assert failed)时工作。你知道吗

我不知道怎样做才是正确的方法。我正在考虑使用一个将在__del__上编写消息的全局函数,但我知道在python中并不总是调用它。我考虑过使用atexit,但我不确定是否保证调用它,以及导入的模块是否可用(我希望能够将消息写入远程服务器)。你知道吗

我用的是Python3.7


Tags: 模块方法脚本信息消息loggingsys时间
1条回答
网友
1楼 · 发布于 2024-04-25 18:04:19

查看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

https://docs.python.org/3/library/atexit.html

相关问题 更多 >