首页 > 解决方案 > Sentry DjangoIntegration event_level

问题描述

我在 Django 中使用 Sentry,如下所示:

sentry_integration = DjangoIntegration()
sentry_sdk.init(
    dsn="https://xxx@sentry.io/xxx",
    integrations=[sentry_integration]
)

并使用这些记录设置:

LOGGING = {
    'version': 1,
    'disable_existing_loggers': False,
    'handlers': {
        'console': {
            'class': 'logging.StreamHandler',
        },
        'file': {
            'class': 'logging.FileHandler',
            'filename': os.path.join(BASE_DIR, 'logs', 'django.log'),
        },
    },
    'loggers': {
        'django': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
        },
        'django.template': {
            'handlers': ['file', 'console'],
            'level': 'INFO',
        },
        'app': {
            'handlers': ['file', 'console'],
            'level': 'DEBUG',
        }
    },
}

如果我在我的代码中实例化并调用一个记录器,它会被发送到 Sentry。

import logging
logger = logging.getLogger(__name__)

logger.error("error!")

但是,现在我还想记录.warning通话。文档说要这样做:

sentry_logging = LoggingIntegration(event_level=logging.WARNING)
sentry_sdk.init(
    dsn="https://xxx@sentry.io/xxx",
    integrations=[sentry_logging]
)

但是LoggingIntegration使用的是而不是DjangoIntegration。我尝试DjangoIntegration在上面的代码中使用,但出现此错误:

TypeError: init () got an unexpected keyword argument 'event_level'

这可能吗?

标签: djangosentry

解决方案


集成参数是一个列表。您可以传入两个集成:

init(
    integrations=[LoggingIntegration(...), DjangoIntegration(...)]
)

推荐阅读