问题
当前的全局异常钩子在程序崩溃时直接调用默认处理并退出,崩溃信息中没有时间戳:
def exception_hook(exctype, value, traceback):
sys.__excepthook__(exctype, value, traceback)
sys.exit(1) # 强制程序退出
用户反馈 Bug 时,无法知道崩溃发生的确切时间,难以与日志对照。
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!
问题
当前的全局异常钩子在程序崩溃时直接调用默认处理并退出,崩溃信息中没有时间戳:
用户反馈 Bug 时,无法知道崩溃发生的确切时间,难以与日志对照。
建议:使用 dttb
dttb是一个轻量级库,可以在sys.excepthook触发时自动附加时间戳,方便定位问题:安装:
pip install dttb仓库:https://github.com/rocky-d/dttb
如果有需要可以提 PR!