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

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


当前回答

很多很好的答案,但为什么不只是使用JSON.stringify(your_variable) ?然后通过复制粘贴(删除外部引号)获取内容。我也在:如何将console.log(对象)的输出保存到文件中?

其他回答

为了更好的日志文件(没有chrome调试的废话)使用:

--enable-logging --log-level=0

而不是 -v=1,信息量太大了。

它仍然会提供错误和警告,就像你通常在Chrome控制台中看到的那样。

2020年5月18日更新:实际上,我认为这不再是真的。无论日志级别是什么,我都找不到控制台消息。

在Linux上(至少),您可以在环境中设置CHROME_LOG_FILE,让chrome每次运行时都将控制台活动的日志写入命名文件。每次chrome启动时,日志都会被覆盖。这样,如果你有一个运行chrome的自动会话,你不需要改变chrome启动的方式,并且会话结束后日志就在那里。

出口CHROME_LOG_FILE = chrome.log

这个线程中的其他解决方案在我的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

谷歌Chrome版本84.0.4147.105及以上,

右键点击,另存为,然后保存

然后保存TXT文件

很多很好的答案,但为什么不只是使用JSON.stringify(your_variable) ?然后通过复制粘贴(删除外部引号)获取内容。我也在:如何将console.log(对象)的输出保存到文件中?