sys.excepthook
是 Python 中的一个全局异常处理钩子(hook),它允许你在发生未捕获的异常时执行自定义的处理逻辑。你可以使用 sys.excepthook
将异常信息写入日志文件。
下面是一个示例,演示如何使用 sys.excepthook
将全局异常信息写入日志文件:
import sys
import logging
def log_exception(exc_type, exc_value, exc_traceback):
logging.error("Uncaught exception", exc_info=(exc_type, exc_value, exc_traceback))
# 设置日志配置
logging.basicConfig(filename='error.log', level=logging.ERROR)
# 将 log_exception 函数设置为全局异常处理钩子
sys.excepthook = log_exception
# 主进程逻辑代码
def main():
# 子进程逻辑代码
def child_process():
# 设置日志配置
logging.basicConfig(filename='child_error.log', level=logging.ERROR)
# 将 log_exception 函数设置为全局异常处理钩子
sys.excepthook = log_exception
# 子进程逻辑代码
child_process()
if __name__ == "__main__":
main()