如何防止哨兵捕获某些未捕获的异常和日志消息的事件?

use*_*461 5 python django logging sentry

正如 Sentry 的文档[1] [2]为其新的统一 python sdk ( sentry_sdk) 所推荐的那样,我已经使用我的 Django 应用程序对其进行了配置,以捕获所有异常或“错误”级日志上的事件:

import sentry_sdk
import logging
from sentry_sdk.integrations.django import DjangoIntegration
from sentry_sdk.integrations.logging import LoggingIntegration

sentry_logging = LoggingIntegration(
    level=logging.DEBUG,
    event_level=logging.ERROR
)
sentry_sdk.init(
    dsn="{{sentry_dsn}}",
    integrations=[DjangoIntegration(), sentry_logging]
)
Run Code Online (Sandbox Code Playgroud)

然而,由于这直接与 python 的日志模块和内部异常处理挂钩,这意味着任何使用这个 Django 环境的东西都会将事件发送到哨兵。有一些任务(例如交互式 manage.py 命令,或在 REPL 中工作)需要 Django 环境,但我希望在 Sentry 中创建事件。

有没有办法向哨兵表明我希望它从异常或logging当前任务的调用中捕获事件?或者在全局配置后暂时禁用它的方法?

Mar*_*zer 5

您可以sentry_sdk.init()再次运行(尤其是在没有 DSN 的情况下)以禁用 SDK。