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

问题描述 投票:3回答:2

根据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调用当前任务的事件?还是一种在全局配置后临时禁用它的方法?

python django logging sentry
2个回答
1
投票

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


0
投票

也许有更好的方法,但在任何文件中,您都可以导入日志记录并禁用它,如下所示:logging.disable(logging.CRITICAL)。这将禁用在参数或低于参数的级别的日志记录(因为CRITICAL是最高的,它将禁用所有日志记录)。

© www.soinside.com 2019 - 2024. All rights reserved.