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

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


当前回答

如果在本地主机上运行Apache服务器(不要在生产服务器上执行此操作),还可以将结果发布到脚本中,而不是将其写入控制台。

所以,你可以这样写:

JSONP('http://localhost/save.php', {fn: 'filename.txt', data: json});

那么save。php就可以做到这一点

<?php

 $fn = $_REQUEST['fn'];
 $data = $_REQUEST['data'];

 file_put_contents("path/$fn", $data);

其他回答

我需要做同样的事情,这是我找到的解决方案:

从命令行使用标志启用日志记录: ——启用日志记录——v = 1

这将记录Chrome内部所做的一切,但它也记录所有console.log()消息以及。日志文件名为chrome_debug.log,位于用户数据目录,可以通过提供——User - Data -dir=PATH来覆盖。

过滤日志文件中包含CONSOLE(\d+)的行。

注意,控制台日志不会以——incognito显示。

如果在本地主机上运行Apache服务器(不要在生产服务器上执行此操作),还可以将结果发布到脚本中,而不是将其写入控制台。

所以,你可以这样写:

JSONP('http://localhost/save.php', {fn: 'filename.txt', data: json});

那么save。php就可以做到这一点

<?php

 $fn = $_REQUEST['fn'];
 $data = $_REQUEST['data'];

 file_put_contents("path/$fn", $data);

使用下面的命令创建一个批处理文件,并将其保存为桌面中的ChromeDebug.bat。

启动chrome——enable-logging——v=1

关闭所有其他Chrome选项卡和窗口。 双击ChromeDebug.bat文件,将打开Chrome浏览器,并在任务栏中显示带有Chrome图标的命令提示符。 所有的web应用程序日志将存储在下面的路径。 在“运行命令”中输入以下路径,打开chrome日志文件

%LocalAppData%\Google\Chrome\User Data\chrome_debug.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

这个答案可能看起来特别相关,但对于Network Log,您可以访问下面的链接。

我发布这个答案的原因是,在我的情况下,console.log打印了一个长而短的文本,所以我无法从控制台获取值。我通过获得api响应来解决,我直接从网络日志中打印。

chrome://net-export/

在那里你可能会看到一个类似的窗口,只需按下Start Logging to Disk按钮,就是这样: