2015-09-18 48 views
0

我计划启动一个我正在开发的Web应用程序的内测版,并且我想要一种方法来轻松地从测试人员那里收集控制台日志数据。对于他们来说,“轻松”意味着轻松,因为他们中的大多数技术人员不足以打开控制台并复制/粘贴信息和错误。有什么方法可以收集这些信息,包括所有log/info/warn/error语句和堆栈跟踪?任何方式来收集测试者的控制台日志?

编辑:我应该澄清,它主要是我担心的未处理的异常,所以重写console.error将不会执行任何操作,因为该函数没有被调用。

+0

http://stackoverflow.com/questions/11403107/capturing-javascript-console-log –

+0

@RickS看到我上面的编辑。我不打电话给'console.log'或'console.error' – ffxsam

+0

window.error怎么办? https://developer.mozilla.org/en-US/docs/Web/API/GlobalEventHandlers/onerror –

回答

2

更新

编辑完你的问题说,你想要的是记录的错误,所以,你必须使用onerror事件,可在window对象。

window.addEventListener('error', function(e) { 
    // log whatever you want here 
}); 

你可以做这样的事情在你的Javascript:

console.print = console.log; 
console.log = function() { 
    console.print(arguments); 

    // collect your data here, for example, sending a XHR 
    var params = "values=" + encodeURIComponent(JSON.stringify(arguments)); 
    var xhr = new XMLHttpRequest(); 
    xhr.open('POST', '/log-data'); 
    xhr.send(params); 
} 

您覆盖console.log功能,你可以做任何你想做那里。

+0

完美。而'e'也有我需要的所有细节,例如行号,错误信息,URL。 – ffxsam

0

查看一个支持日志记录到数据库的日志记录库,或者制作一些日志记录功能,它们会在出现log/info/warn/error时执行ajax post。使帖子包含简单的信息,如时间戳,用户和控制台输出。在后端有记录所有的信息。这将是用户最简单的方式。

+0

当然,一个日志记录库可以工作,但不是在我没有计划的未处理的异常(或者不能控制它是否在第三方库中)的情况下。 – ffxsam

+0

@ffxsam您可以重写'console.log'来写入数据库,并且您可以捕获'window.onerror'并将其记录到数据库中。 – dman2306

+0

重写'console.log'或'console。错误“将无济于事。未处理的异常不使用这些函数。尝试覆盖这些函数,然后执行'throw Error('ouch')'并查看我的意思。 – ffxsam

0

不久前,我偶然发现了一个同样的问题,为学生的webapp。

请看看我的答案为“获取控制台历史记录”:https://stackoverflow.com/a/40126638/1878974

基本上,我写了一个简单的库来捕获所有console[log/info/warn/err/debug]电话和他们console.history存储为一个数组。

该库可在GitHub上,有更多的例子和文档:https://git.io/console

因此,使用console.history,您可以 - 使用@ Buzinas的答案 - 轻松发布完整的控制台历史记录到你的服务器或存储解决方案:

window.addEventListener('error', function(e) { 

    // POST request to server 
    var xmlhttp = new XMLHttpRequest(); 
    xmlhttp.open("POST", "/log-data"); 
    xmlhttp.setRequestHeader("Content-Type", "application/json;charset=UTF-8"); 
    xmlhttp.send(JSON.stringify(console.history)); 

}); 
0

有人告诉我一个非常酷的错误日志记录服务,名为Rollbar,它实际上会自动记录未处理的异常。我现在使用它,这是一个巨大的帮助!

相关问题