python - 使用 python 的 logging 模块记录所有异常和错误

标签 python debugging

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

最佳答案

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

因此,您应该只记录 未捕获 异常。您可以使用记录器的 exception() method 轻松完成此操作。 , 一旦你有一个异常对象。

要处理所有未捕获的异常,您可以将脚本的入口点包装在 try...except block 中,或者通过重新分配 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()

关于python - 使用 python 的 logging 模块记录所有异常和错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8050775/

相关文章:

python - 将多个变量写入文件

java - While循环NoSuchElementException整数输入java

java - 在 Brackets 编辑器或 Visual Studio Code 中调试 Java

python - 导入 cv2 (opencv) 时为 "DLL load failed"

python - 如何用许多参数覆盖 Python 类的构造函数?

python - TensorFlow Lite 对象检测 iOS 不适用于自定义训练模型

java - 如何在编译期间逐步调试注释处理器?

python - 在 Arch Linux 上 pip 安装 mysqlclient

ios - 在 iOS 设备 XCODE8 上没有进行调试

c++ - 我可以将项目链接到与我使用的库不同的 _ITERATOR_DEBUG_LEVEL 吗?