有没有一种方法可以记录浏览器控制台的错误信息?

5
假设某个用户正在使用Chrome浏览器,并收到运行时错误,该错误已记录在Chrome的控制台中。我想知道那个错误是什么。目前,我需要联系特定用户,让他们打开控制台并告诉我错误是什么(或发送截图)。
是否有一种方法可以自动捕获或记录该错误(无论该错误是什么)并将其发送到服务器?
作为后续问题,是否有一种方法可以为所有主要浏览器执行此操作?

有许多工具/库可以做到这一点。例如,可以看看Sentry - James Allardice
可能是捕获所有JavaScript错误并将其发送到服务器的重复问题。 - Martin Omander
1个回答

4
你可以使用你的日志方法包装 console.log 和 console.error
var log = console.log;

console.log = function() {
    //Ajax post arguments to your server for logging
    return log.apply(console, arguments);
};

var error = console.error;

console.error = function() {
    //log arguments to server
    return error.apply(console, arguments); 
};

1
如果浏览器生成错误而不是我自己记录的错误怎么办?例如,如果浏览器无法解析JSON响应,则浏览器将记录错误。我想知道这个情况。上述方法是否可以处理这种情况? - Allen S
不,它不会,但它会获取任何JS代码发送的日志和错误。如果您想记录浏览器错误,您可以使用window.onerror = function(errorMsg, url, lineNumber){ //ajax log to server ('Error: '+ errorMsg + ' Script: '+url+' Line: '+lineNumber); }。HTML5 onerror还会发送列和错误信息。 - artm
更多关于@AllenS的问题的细节已在以下链接中给出:https://dev59.com/rW445IYBdhLWcg3wdqIL - Ceylan B.

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接