如果您想在所有事件上运行自定义逻辑,您可以在发送前回调中执行此操作。
在JavaScript中,函数可用于修改事件或返回一个全新的事件。 如果返回null,则将丢弃该事件。
Sentry.init({
beforeSend(event) {
// Modify the event here
if (event.user) {
// Don't send user's email address
delete event.user.email;
}
return event;
}
});
过滤面包屑
面包屑也可以单独过滤,参见面包屑章节。
事件提示
当SDK创建用于传输的事件或面包屑时,通常是从某种源对象创建的。 例如,通常从日志记录或异常实例创建错误事件。 为了更好地进行自定义,SDK会将这些对象发送到某些回调(发送前,前面包屑或SDK中的事件处理器系统)。
发送之前
发送前回调传递事件,第二个参数提示保存一个或多个提示。 通常,此提示保留原始异常,以便可以提取其他数据或分组受到影响。
在此示例中,如果捕获了某种类型的异常,则指纹被强制为公共值:
Sentry.init({
beforeSend(event) {
// Modify the event here
if (event.user) {
// Don't send user's email address
delete event.user.email;
}
return event;
}
});
面包屑之前
与before-breadcrumb类似,此处也支持提示。 当使用日志记录或事件中的一些额外数据来扩充或更改面包屑时,这尤其有用。 以下示例显示了您可能希望提取额外信息以及如何执行此操作的典型情况:
import * as Sentry from '@sentry/browser';
Sentry.init({
dsn: 'https://<key>@sentry.io/',
beforeBreadcrumb(breadcrumb, hint) {
if (breadcrumb.category === 'ui.click') {
const { target } = hint.event;
if (target.ariaLabel) {
breadcrumb.message = target.ariaLabel;
}
}
return breadcrumb;
},
});