小编典典

如何使用调试信息记录 Python 错误?

all

我正在将 Python 异常消息打印到日志文件中logging.error

import logging
try:
    1/0
except ZeroDivisionError as e:
    logging.error(e)  # ERROR:root:division by zero

是否可以打印有关异常和生成它的代码的更多详细信息,而不仅仅是异常字符串?行号或堆栈跟踪之类的东西会很棒。


阅读 66

收藏
2022-03-06

共1个答案

小编典典

logger.exception将在错误消息旁边输出堆栈跟踪。

例如:

import logging
try:
    1/0
except ZeroDivisionError:
    logging.exception("message")

输出:

ERROR:root:message
Traceback (most recent call last):
  File "<stdin>", line 2, in <module>
ZeroDivisionError: integer division or modulo by zero

“请注意,在Python 3中,您必须在部件logging.exception内部except调用该方法。如果您在任意位置调用此方法,您可能会遇到一个奇怪的异常。文档对此提出了警告。”

2022-03-06