python 为什么Sentry记录except块中捕获的错误?

5n0oy7gb  于 2023-01-19  发布在  Python
关注(0)|答案(1)|浏览(135)

我使用Sentry来检查错误,在我的代码的一个部分中,有一个try/except块,用于一个使用langdetect并抛出LangDetectException的代码片段。

try:
    return detect(text)
except LangDetectException as error:
    logging.error(repr(error))

我真的不明白Sentry的文档是关于他们是否应该记录except范围内的错误还是只记录未处理的错误?在一个地方,他们说Sentry不应该记录捕获的错误,而在另一个地方,他们说它应该这样做,所以我有点困惑。提到的代码,当文本只由非alpha字符组成时,我抛出了LangDetectException('No features in text.')错误,但也在Sentry上将其列为错误。为什么会发生这种情况?显然,这是一个捕获的错误,我只想将其记录在我的日志中,而不是Sentry中。这是Sentry的正常行为还是我遗漏了什么?

x3naxklr

x3naxklr1#

正在创建官方答案。我刚刚也遇到了这个。@zoran404的评论是正确的。
默认情况下,Python Sentry包会为logging.error()调用创建一个问题。
调用sentry_sdk.init()已经集成了日志模块,相当于这样的显式配置:

import logging
import sentry_sdk
from sentry_sdk.integrations.logging import LoggingIntegration

# All of this is already happening by default!
sentry_logging = LoggingIntegration(
    level=logging.INFO,        # Capture info and above as breadcrumbs
    event_level=logging.ERROR  # Send errors as events
)

https://docs.sentry.io/platforms/python/guides/logging/开始

相关问题