Python异常日志,语法正确吗?

2024-09-30 08:21:49 发布

您现在位置:Python中文网/ 问答频道 /正文

我在一些处理异常的python代码中添加了日志记录,在下面的示例中,想要记录异常详细信息的正确语法是什么(例如vialogger.exception())当发生TypeError或AttributeError时?在

    try:
        ...
    except (TypeError, AttributeError):
        # want to do a logger.exception(x) here but not sure what to use for x
        ...
        raise CustomError("Unable to parse column status)

Tags: to代码示例记录exception语法详细信息logger
2条回答

exception(...)只是一种方便的方法,它像其他方法一样接受消息:

def exception(self, msg, *args):
    """
    Convenience method for logging an ERROR with exception information.
    """
    self.error(msg, exc_info=1, *args)

所以你应该像

^{pr2}$

日志处理程序将自动从当前异常添加异常信息。只在异常处理程序中使用它(例如在except:块中)!在

如果需要异常详细信息,则需要将异常本身绑定到局部变量,如下所示:

except (TypeError, AttributeError), e:
    # e is the Exception object
    logger.exception(e)

如果需要根据异常的类型执行不同的操作,则可以分别捕获它们:

^{pr2}$

如果您需要有关异常本身上下文的更多信息,请查看sys.exc_info()函数;它可以为您提供回溯,以及关于异常发生的确切位置的详细信息。在

相关问题 更多 >

    热门问题