有人知道一种方法来保存控制台.log输出在Chrome到一个文件?或者如何从控制台复制文本?
假设你正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出?
有人知道一种方法来保存控制台.log输出在Chrome到一个文件?或者如何从控制台复制文本?
假设你正在运行几个小时的功能测试,并且在Chrome中有数千行console.log输出。如何保存或导出?
当前回答
我找到了一个很好很简单的方法。
在控制台-右键单击控制台日志对象 点击“存储为全局变量” 查看新变量的名称-例如,它是variableName1 在控制台中输入:JSON.stringify(variableName1) 复制变量字符串内容:例如{"a":1,"b":2,"c":3}
使用JSON在线编辑器: 例如,https://jsoneditoronline.org/
其他回答
在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
很多很好的答案,但为什么不只是使用JSON.stringify(your_variable) ?然后通过复制粘贴(删除外部引号)获取内容。我也在:如何将console.log(对象)的输出保存到文件中?
这个答案可能看起来特别相关,但对于Network Log,您可以访问下面的链接。
我发布这个答案的原因是,在我的情况下,console.log打印了一个长而短的文本,所以我无法从控制台获取值。我通过获得api响应来解决,我直接从网络日志中打印。
chrome://net-export/
在那里你可能会看到一个类似的窗口,只需按下Start Logging to Disk按钮,就是这样:
一个好消息
Chrome开发工具现在允许您将控制台输出保存到本地文件
打开控制台 右键单击 选择“另存为…”
Chrome开发者说明在这里。