使用python的日志记录模块记录所有异常和错误

发布于 2021-01-29 18:40:44

我想检查特定背景文件中的错误,但是标准错误流由前台程序控制,并且问题中文件中的错误未显示。不过,我可以使用该logging模块并将输出写入文件。我想知道如何使用它来记录所有异常,错误及其回溯。

关注者
0
被浏览
138
1 个回答
  • 面试哥
    面试哥 2021-01-29
    为面试而生,有面试问题,就找面试哥。

    记录程序中引发的 任何 异常可能是一个坏主意,因为Python还将异常用于正常控制流。

    因此,您应该只记录 未捕获的
    异常。一旦有了异常对象,就可以使用记录器的exception()方法轻松地执行此操作。

    要处理所有未捕获的异常,您可以将脚本的入口点包装在一个try...except块中,或者通过重新分配安装自定义异常处理程序sys.excepthook()

    import logging
    import sys
    
    logger = logging.getLogger('mylogger')
    # Configure logger to write to a file...
    
    def my_handler(type, value, tb):
        logger.exception("Uncaught exception: {0}".format(str(value)))
    
    # Install exception handler
    sys.excepthook = my_handler
    
    # Run your main script here:
    if __name__ == '__main__':
        main()
    


知识点
面圈网VIP题库

面圈网VIP题库全新上线,海量真题题库资源。 90大类考试,超10万份考试真题开放下载啦

去下载看看