[英]How can I automatically log warnings and errors from the console in Electron?
我想将这些自动生成的错误和警告记录在我的应用程序中,以便调试用户遇到的问题,但是到目前为止,我还没有找到记录这些问题的解决方案。 有人知道一个包或方法吗?
谢谢。
基本思想是通过订阅window.onerror
来侦听错误:
window.onerror = function (msg, url, lineNo, columnNo, error) {
// log to your server
return false;
}
但是某些浏览器并不总是为您提供堆栈跟踪,因此您必须使用try
catch
包装位于堆栈链顶部的函数调用:
function wrapErrors(fn) {
// don't wrap function more than once
if (!fn.__wrapped__) {
fn.__wrapped__ = function () {
try {
return fn.apply(this, arguments);
} catch (e) {
logErrorToYourServer(e); // report the error
throw e; // re-throw the error
}
};
}
return fn.__wrapped__;
}
var invoke = wrapErrors(function(obj, method, args) {
return obj[method].apply(this, args);
});
invoke(Math, 'highest', [1, 2]); // no method Math.highest
该函数必须被调用:
例如:
$(wrapErrors(function () { // application start
doSynchronousStuff1(); // doesn't need to be wrapped
setTimeout(wrapErrors(function () {
doSynchronousStuff2(); // doesn't need to be wrapped
});
$('.foo').click(wrapErrors(function () {
doSynchronousStuff3(); // doesn't need to be wrapped
});
}));
(从哨兵的博客文章中无耻复制的代码)
您可以在以下链接中找到更多信息:
也有商业产品
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.