我正在将Python异常消息打印到日志(log)文件中,其中包含logging.error
条:
import logging
try:
1/0
except ZeroDivisionError as e:
logging.error(e) # ERROR:root:division by zero
除了异常字符串之外,是否可以打印有关异常和生成异常的代码的更详细信息?像行号或堆栈跟踪这样的东西会很棒.
我正在将Python异常消息打印到日志(log)文件中,其中包含logging.error
条:
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注意到,"请注意,在Python3中,您必须仅在except
部分内调用logging.exception
方法.如果您在任意位置调用此方法,您可能会得到一个奇怪的异常.文档会提醒您这一点."