有人知道一种方法来保存控制台.log输出在Chrome到一个文件?或者如何从控制台复制文本?

假设你正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出?


当前回答

有一个开源的javascript插件可以做到这一点,但适用于任何浏览器- debugout.js

debug .js记录并保存控制台。日志,以便应用程序可以访问它们。坦白说,是我写的。它可以适当地格式化不同的类型,可以处理嵌套对象和数组,还可以在每个日志旁边添加时间戳。您还可以在一个地方切换实时日志记录,而不必删除所有日志记录语句。

其他回答

这可能有帮助,也可能没有帮助,但在Windows上,您可以使用Windows事件跟踪读取控制台日志

http://msdn.microsoft.com/en-us/library/ms751538.aspx

我们的集成测试是在. net中运行的,所以我使用这个方法将控制台日志添加到测试输出中。我在这里创建了一个控制台项目示例:https://github.com/jkells/chrome-trace

——enable-logging——v=1在最新版本的Chrome上似乎不起作用。

我找到了一个很好很简单的方法。

在控制台-右键单击控制台日志对象 点击“存储为全局变量” 查看新变量的名称-例如,它是variableName1 在控制台中输入:JSON.stringify(variableName1) 复制变量字符串内容:例如{"a":1,"b":2,"c":3}

使用JSON在线编辑器: 例如,https://jsoneditoronline.org/

有一个开源的javascript插件可以做到这一点,但适用于任何浏览器- debugout.js

debug .js记录并保存控制台。日志,以便应用程序可以访问它们。坦白说,是我写的。它可以适当地格式化不同的类型,可以处理嵌套对象和数组,还可以在每个日志旁边添加时间戳。您还可以在一个地方切换实时日志记录,而不必删除所有日志记录语句。

这个线程中的其他解决方案在我的mac上不起作用。这里是一个记录器,它使用ajax间歇性地保存字符串表示。与控制台一起使用。保存而不是console.log

var logFileString="";
var maxLogLength=1024*128;

console.save=function(){
  var logArgs={};

  for(var i=0; i<arguments.length; i++) logArgs['arg'+i]=arguments[i];
  console.log(logArgs);

  // keep a string representation of every log
  logFileString+=JSON.stringify(logArgs,null,2)+'\n';

  // save the string representation when it gets big
  if(logFileString.length>maxLogLength){
    // send a copy in case race conditions change it mid-save
    saveLog(logFileString);
    logFileString="";
  }
};

根据你的需要,你可以保存这个字符串,或者只是console.log,然后复制粘贴。这里有一个ajax给你,以防你想保存它:

function saveLog(data){
  // do some ajax stuff with data.
  var xhttp = new XMLHttpRequest();

  xhttp.onreadystatechange = function(){
    if (this.readyState == 4 && this.status == 200) {}
  }

  xhttp.open("POST", 'saveLog.php', true);
  xhttp.send(data);
}

php应该将数据附加到某个日志文件中。我不需要那部分,所以我没有把它包括在这里。:)

https://www.google.com/search?q=php+append+to+log

现在这很简单——右键单击控制台日志中显示的任何项,选择另存为,然后将整个日志输出保存到计算机上的一个文件中。