如何防止哨兵捕获某些未捕获的异常和记录消息的事件?
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何防止哨兵捕获某些未捕获的异常和记录消息的事件?相关的知识,希望对你有一定的参考价值。
根据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
调用当前任务的事件?还是一种在全局配置后临时禁用它的方法?
答案
您可以再次运行sentry_sdk.init()
(特别是没有DSN)来禁用SDK。
另一答案
也许有更好的方法,但在任何文件中,您都可以导入日志记录并禁用它,如下所示:logging.disable(logging.CRITICAL)。这将禁用在参数或低于参数的级别的日志记录(因为CRITICAL是最高的,它将禁用所有日志记录)。
以上是关于如何防止哨兵捕获某些未捕获的异常和记录消息的事件?的主要内容,如果未能解决你的问题,请参考以下文章