有人知道一种方法来保存控制台.log输出在Chrome到一个文件?或者如何从控制台复制文本?
假设你正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出?
有人知道一种方法来保存控制台.log输出在Chrome到一个文件?或者如何从控制台复制文本?
假设你正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出?
当前回答
还有另一个开源工具,它可以让你把所有console.log输出保存在服务器上的一个文件中——JS LogFlush(插件!)。
JS LogFlush是一个集成的JavaScript日志解决方案,包括: 跨浏览器无ui替换console.log客户端。 日志存储系统-服务器端。
Demo
其他回答
这个线程中的其他解决方案在我的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按钮,就是这样:
这可能有帮助,也可能没有帮助,但在Windows上,您可以使用Windows事件跟踪读取控制台日志
http://msdn.microsoft.com/en-us/library/ms751538.aspx
我们的集成测试是在. net中运行的,所以我使用这个方法将控制台日志添加到测试输出中。我在这里创建了一个控制台项目示例:https://github.com/jkells/chrome-trace
——enable-logging——v=1在最新版本的Chrome上似乎不起作用。
如果在本地主机上运行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);
直接右键单击要复制的日志值 在右键菜单中选择“存储为全局变量” 您将在控制台上的下一行中看到保存为“temp1”之类的值 在控制台中,键入copy(temp1)并点击return(将temp1替换为上一步中的变量名)。现在记录的值被复制到剪贴板。 将值粘贴到您想要的任何位置
如果你不想在Chrome中更改标志/设置,也不想处理JSON字符串化和解析等,这是一种特别好的方法。
更新:我刚刚发现这个解释,我建议的图片更容易遵循https://scottwhittaker.net/chrome-devtools/2016/02/29/chrome-devtools-copy-object.html