首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在新的sentry-python SDK中,将额外的字典传递给captureException相当于什么?

在新的sentry-python SDK中,将额外的字典传递给captureException相当于什么?
EN

Stack Overflow用户
提问于 2018-12-05 22:44:49
回答 1查看 991关注 0票数 3

将额外内容传递给capture_exception和capture_message的新哨兵python SDK方法的最佳方式是什么?

以前,我会:sentry_id = sentry.captureException(extra=extra)

根据文档和这个github问题(https://github.com/getsentry/sentry-python/issues/113),下面的选项之一是可比较的,但我想不出一个方法。

使用capture_exception很接近...

代码语言:javascript
复制
except Exception as e:
    sentry_id = capture_exception(e, extra=extra) # Error

..。但不允许第二个额外的参数:(

使用python日志记录集成非常接近...

代码语言:javascript
复制
except Exception as e:
    sentry_id = logging.error(e, exc_info=True, extra=extra)

..。但是不返回一个卫兵id :(

使用的python日志记录集成和capture_exception很接近...

代码语言:javascript
复制
except Exception as e:
    logging.error(e, exc_info=True, extra=extra)
    sentry_id = capture_exception(e)

..。但是会在sentry中产生两个单独的错误条目:(

capture_exception与push_scope配合使用已接近...

代码语言:javascript
复制
except Exception as e:
    with push_scope() as scope:
        scope.set_extra(extra) # Error
        sentry_id = capture_exception(e)

..。但不接受字典:(

使用最后一种方法的解决方案是使用辅助函数,该函数将额外的字典解压到许多scope.set_extra(key, val)调用中吗?

谢谢你的帮助!

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-12-07 04:32:33

代码语言:javascript
复制
except Exception as e:
    with push_scope() as scope:
        for k, v in extra.items():
            scope.set_extra(k, v)
        sentry_id = capture_exception(e)

但是,我认为您在错误的时间点设置了extra。理想情况下,一旦额外的上下文数据可用并与当前正在执行的代码相关,您就应该设置它。仅仅为了调用capture_exception而推入一个作用域,表明您对set_extra的调用的结构方式存在问题。

而不是这样:

代码语言:javascript
复制
logger.error("Event via logging", extra={"foo": 42})

try:
    1/0
except Exception:
    with push_scope() as scope:
        scope.set_extra("foo", 42)
        capture_exception()

执行以下操作:

代码语言:javascript
复制
with push_scope() as scope:
    scope.set_extra("foo", 42)
    logger.error("Event via logging")

    try:
        1/0
    except Exception:
        capture_exception()
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53634836

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档