首页 > 解决方案 > 如何防止哨兵捕获某些未捕获异常的事件并记录消息?

问题描述

正如 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]
)

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

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

标签: pythondjangologgingsentry

解决方案


您可以sentry_sdk.init()再次运行(尤其是没有 DSN)来禁用 SDK。


推荐阅读