【问题标题】:How can I tag just one Sentry event?如何只标记一个 Sentry 事件?
【发布时间】:2017-08-23 10:10:51
【问题描述】:

我想用一些指定的标签报告哨兵事件,但是我不想在以后的事件中包含这个标签。

使用以下代码,我添加了一个标记和报告事件:

Sentry.getContext().addTag("my_tag", "yes");
Sentry.capture("event happened");

然后,过了一会儿,另一个事件发生了:

Sentry.capture("another event happened"); // tag is included, but I don't want it

我尝试删除Sentry.clearContext() 的标签,但它会清除所有信息,包括面包屑。

我也尝试过Sentry.getContext().getTags().remove("my_tag");,但由于标签保留在UnmodifiableMap 中,此操作只会引发异常。

【问题讨论】:

  • 这绝对是当前实现中的疏忽。我(错误地)假设用户希望在上下文的整个生命周期中都设置标签。我在这里创建了一个问题,我认为目前最好的做法可能是添加一个removeTag 方法,有什么想法吗?:github.com/getsentry/sentry-java/issues/496

标签: java sentry


【解决方案1】:

截至sentry-java 1.5.2(刚刚发布以解决此问题)您可以使用Context 上的新方法来清理临时标签/额外数据:

Sentry.getContext().removeTag("my_tag");
Sentry.getContext().clearTags();

Sentry.getContext().removeExtra("my_extra");
Sentry.getContext().clearExtra();

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-10-08
    • 2021-11-24
    • 2010-09-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多