任何收集beta测试者的方法'控制台日志?

时间:2015-09-18 17:53:55

标签: javascript google-chrome firefox google-chrome-devtools

我计划推出一个我正在处理的网络应用的封闭测试版,我想要一种从测试人员轻松收集控制台日志数据的方法。通过"轻松"我的意思是他们很容易,因为他们中的大多数人都没有足够的技术来打开控制台并复制/粘贴信息和错误。有什么方法可以收集它,包括所有log / info / warn / error语句和堆栈跟踪?

编辑:我应该澄清一下,它主要是我担心的未处理的例外情况,因此覆盖console.error将无效,因为该函数未被调用。

4 个答案:

答案 0 :(得分:3)

<强>更新

您已编辑了问题,说明您想要的是记录错误,因此,您必须使用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功能,您可以随意执行任何操作。

答案 1 :(得分:0)

查看一个支持记录到数据库的日志记录库,或者创建一些记录函数,这些函数将在出现日志/信息/警告/错误的情况下执行ajax发布。使帖子包含时间戳,用户和控制台输出等简单信息。在后端有记录所有信息。这对用户来说是最简单的方式。

答案 2 :(得分:0)

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

请在“获取控制台历史记录”中查看我的回答:Reference Source

基本上,我编写了一个简单的库来捕获所有console.history调用,并将它们作为数组存储在console.history中。

该库可在GitHub上获得,其中包含更多示例和文档:https://stackoverflow.com/a/40126638/1878974

因此,使用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)); }); ,您可以 - 使用@ Buzinas的答案 - 轻松地将完整的控制台历史记录发送到您的服务器或存储解决方案:

{{1}}

答案 3 :(得分:0)

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