从我所看到的情况来看,大多数人都使用“只是工作”的外部服务。然后他们在初始化程序中输入一些代码来报告错误。
在我的初始化程序中,到目前为止我有:
Ember.onerror = function(error) {
displayError(error);
};
和displayError
显示错误通知(类似于Atom编辑器的错误通知)
但是当我试图为我的displayError函数添加功能(附加多个错误,关闭一个/所有,显示堆栈跟踪,最终将问题发布到github等)时,我发现它&# 39;回到vanilla javascript非常麻烦,我想知道是否有办法利用ember报告我的应用程序中发生的错误。
有没有人:
- 了解一个为我做这一切的插件(我对使用除github之外的错误报告服务不感兴趣)
- 了解让Ember.onerror
触发应用程序控制器中的操作的方法,以便我可以使用组件来呈现错误,并且可以更轻松地实现我需要的开发吗?
答案 0 :(得分:1)
您可以尝试使用Ember.Instrumentation之类的内容。
这将允许您从Ember.onerror回调内部触发一个事件,您可以在应用中的任何其他位置订阅该事件。因此,假设您创建了一个位于应用程序根目录的组件。然后,您可以将该组件订阅到错误事件,并触发何时显示错误。 Ember.instrument()
还允许您传递可以作为错误对象本身的有效负载。
在您应用的根目录中,您可以使用以下内容:
Ember.onerror = function(error) {
Ember.Instrumentation.instrument("app.error", error);
};
然后在您的组件中,您可以订阅init
函数中的事件,如下所示:
init: function() {
Ember.Instrumentation.subscribe("app.error", {
before: function(name, timestamp, payload) {
// do logic here with error
},
after: function() {
// optional cleanup work here
}
}
}