以持久的方式在Chrome中存储控制台日志记录

时间:2012-04-18 12:46:35

标签: javascript google-chrome logging console persistent

在学校项目中,我正在运行一些通过控制台窗口输入并从那里运行的javascript。该脚本操纵网页并将结果输出到控制台。

问题:保持/保存这些结果的方式不会因浏览器关闭,脚本故障/页面重新加载或电脑崩溃而消失。

我想过使用Log4js或jStorage(jQuery Storage)这样的框架,但由于这不是我操作的网站,我无法在页面中添加代码或标记。

有没有办法做到这一点?

注意:将结果记录到控制台并不重要,我可以将它们发送到某个地方,或者对它们执行其他操作,如果这样可以更容易记录。

感谢。

3 个答案:

答案 0 :(得分:8)

如果您想在Chrome控制台中自动保存所有内容,则必须使用以下选项运行Chrome:

--enable-logging --v=1

它会在其数据目录中保存chrome的完整日志(请注意,每次运行时都会覆盖该文件)。更多详情here

备选方式:安装Sawbuck实用程序以管理Chrome日志。

答案 1 :(得分:8)

这是一个将日志存储到WebStorage的小功能(在浏览器会话中保持不变):

console.plog = function () {
    var key = Date.now();
    var value = JSON.stringify([].slice.call(arguments));
    localStorage.setItem(key, value);
    console.log.apply(console, arguments);
}

要恢复日志,您必须运行以下表达式:

(function restoreLogs() {
    var timestamps = Object.keys(localStorage).sort();
    timestamps.forEach(function (ts) {
        var logArgs = JSON.parse(localStorage.getItem(ts));
        console.log.apply(console, logArgs);
    });
}());

答案 2 :(得分:1)

使用console.error(arg); - 它会将控制台消息发送到浏览器的stderr(我很确定它也会在发布版本中这样做。)

从命令行启动浏览器,将stderr重定向到某个文件(chrome 2>errlog行)。