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

Eri*_*del 6 javascript console logging google-chrome persistent

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

问题:以持久的方式保存/保存这些结果,这些结果不会因浏览器关闭,脚本故障/页面重新加载而消失,或者如果可能,PC崩溃.

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

有没有办法做到这一点?

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

谢谢.

Adr*_*tti 8

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

--enable-logging --v=1
Run Code Online (Sandbox Code Playgroud)

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

替代方法:安装Sawbuck实用程序以管理Chrome日志.


kat*_*ugh 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);
}
Run Code Online (Sandbox Code Playgroud)

要还原日志,您必须运行以下表达式:

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


Ale*_*lov 1

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

从命令行启动浏览器并将其重定向stderr到某个文件(类似于 的内容chrome 2>errlog)。