Airbrake JS SDK无法忽略开发、测试环境的问题咨询
Airbrake JS SDK 忽略特定环境的无判断配置方案
Airbrake JS SDK与Ruby SDK的API存在差异,前者并没有提供ignoreEnvironments配置项,这是你原有配置无效的原因。要实现无需条件判断包裹调用的环境忽略效果,可以利用JS SDK的**过滤器(Filter)**机制:
配置示例
var airbrake = new Airbrake.Notifier({ host: '<%= Settings.airbrake_host %>', projectId: 1, projectKey: '<%= Settings.airbrake_key %>', environment: '<%= Rails.env %>' }); // 添加环境忽略过滤器 airbrake.addFilter((notice) => { const ignoredEnvs = ['development', 'test']; // 若当前环境在忽略列表中,返回null阻止上报 return ignoredEnvs.includes(notice.context.environment) ? null : notice; });
原理说明
过滤器会在每次错误上报前被触发,通过检查notice.context.environment(即你配置的当前环境),判断是否属于需要忽略的环境:
- 返回
null时,Airbrake会放弃本次错误上报 - 返回原
notice对象时,错误会正常上报
这种方式无需在airbrake.notify()等调用外层添加条件判断,所有上报逻辑会自动被过滤器拦截处理。
内容的提问来源于stack exchange,提问作者Cameron
相关产品推荐
相关产品推荐

