Skip to content

建议:为崩溃报告添加时间戳(sys.excepthook) #114

@rocky-d

Description

@rocky-d

问题

当前的全局异常钩子在程序崩溃时直接调用默认处理并退出,崩溃信息中没有时间戳:

def exception_hook(exctype, value, traceback):
    sys.__excepthook__(exctype, value, traceback)
    sys.exit(1)  # 强制程序退出

用户反馈 Bug 时,无法知道崩溃发生的确切时间,难以与日志对照。

建议:使用 dttb

dttb 是一个轻量级库,可以在 sys.excepthook 触发时自动附加时间戳,方便定位问题:

import dttb

def on_crash(args: dttb.CallbackArgs) -> None:
    # args.now 是崩溃发生的时间(datetime 对象)
    print(f'[{args.now}] 程序崩溃: {args.exc_type.__name__}: {args.exc_value}')
    # 可在这里记录到日志文件

dttb.apply(callback=on_crash)

安装:pip install dttb
仓库:https://github.com/rocky-d/dttb

如果有需要可以提 PR!

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions