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

标签 python exception logging exception-handling

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

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

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

最佳答案

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

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

关于python - 如何使用调试信息记录 Python 错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5191830/

相关文章:

java - 记录器内部和根交互内部的严重性

python - 如何在恒定时间内在python中查找列表/元组的大小

python - 不使用内置函数将python字典转换为xml字符串

python - 如何使用ListProperty(数字列表中的项目必须都是Key实例)

python - 如何创建批量剪切音频的方法?

java - 静态映射的空指针异常

c# - 如何正确捕获 ASP.Net MVC 5 项目中 View 甚至 Controller 引发的异常

python - 扩展python日志处理程序,得到 "Level not an integer or a valid string"

java - 随机TransformerException,如何解决?

PHP 错误日志记录 - 我可以将网站的所有错误记录到一个文件中吗?