【问题标题】:How do I customise the Sentry transport?如何自定义 Sentry 传输?
【发布时间】:2021-01-16 08:33:32
【问题描述】:

使用"@sentry/browser": "5.30.0"

如何配置 Sentry 以便自定义 Sentry 发送的消息?

我对文档的阅读是 transport 属性旨在允许这样做,但我无法弄清楚我应该作为参数传递什么。

Sentry.init({
  dsn: '...',
  autoSessionTracking: false,
  transport: (options: TransportOptions)=>{
    return new MyFetchTransport(options);
  },
});

class MyFetchTransport extends FetchTransport {
  constructor(options: TransportOptions){
    super(options);
  }

  sendEvent(event: Event): PromiseLike<Response>{
    return super.sendEvent(event);
  }

  sendSession(session: Session): PromiseLike<Response>{
    return super.sendSession(session);
  }
}

上面给出了一个 Typescript 错误:

Type '(options: TransportOptions) => MyFetchTransport' is not assignable to type 'TransportClass<Transport>'.
  Type '(options: TransportOptions) => MyFetchTransport' provides no match for the signature 'new (options: TransportOptions): Transport'.  TS2322

如果我想自定义 Sentry 发送消息的方式,init 调用应该是什么样的?

【问题讨论】:

    标签: javascript sentry


    【解决方案1】:

    在 Sentry 文档中找到 exampleinit() 调用应如下所示:

    Sentry.init({
      dsn: '...',
      autoSessionTracking: false,
      transport: MyFetchTransport,
    });
    

    【讨论】:

      猜你喜欢
      • 2021-01-13
      • 1970-01-01
      • 2021-12-13
      • 2011-07-27
      • 2021-08-04
      • 1970-01-01
      • 2021-01-05
      • 2014-06-29
      • 2021-09-15
      相关资源
      最近更新 更多