Javascript 以持久方式在Chrome中存储控制台日志

Javascript 以持久方式在Chrome中存储控制台日志,javascript,google-chrome,logging,console,persistent,Javascript,Google Chrome,Logging,Console,Persistent,在一个学校项目中,我运行一些javascript,这些javascript通过控制台窗口输入并从那里运行。此脚本操作网页并将结果输出到控制台 问题:以持久的方式保留/保存这些结果,不会在浏览器关闭、脚本故障/页面重新加载或pc崩溃(如果可能)时消失 我曾想过使用Log4js或jStorage(jQuery存储)等框架,但由于这不是我正在操作的网站,因此我无法向页面添加代码或标记 有没有办法做到这一点 注意:将结果记录到控制台并不重要,我可以将它们发送到某个地方,或者对它们执行其他操作,如果这样更

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

问题:以持久的方式保留/保存这些结果,不会在浏览器关闭、脚本故障/页面重新加载或pc崩溃(如果可能)时消失

我曾想过使用Log4js或jStorage(jQuery存储)等框架,但由于这不是我正在操作的网站,因此我无法向页面添加代码或标记

有没有办法做到这一点

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

谢谢。

使用
控制台。错误(arg)-它会将控制台消息发送到浏览器的
标准代码中(我很确定它在发布版本中也会这样做)


从命令行启动浏览器,将您的
stderr
重定向到某个文件中(类似于
chrome2>errlog
)。

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

--enable-logging --v=1
它将把chrome的完整日志保存在其数据目录中(注意,每次运行时文件都会被覆盖)。更多细节


另一种方法:安装该实用程序来管理Chrome日志。

这里有一个小功能,可以将日志存储到中(在浏览器会话中保持):

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

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

Chrome的控制台日志可以在页面重新加载时保存,这是一个内置选项。谢谢。如果我不能计算出磁盘日志功能,可能会很有用。可惜OP从未接受回答。谢谢,我会检查一下!我似乎找不到日志文件。知道它在哪里吗?在mac上,我检查了Chrome.app的软件包内容。它应该在~/Library/Application Support/Google/Chrome/Default上,无论如何检查一下Google在/Library/Application Support下没有文件夹,但是这两个文件夹与其他一些子文件夹在一起。我怀疑我的Chrome参数可能有问题。我用以下方式打开它:/Applications/Google\Chrome.app/Contents/MacOS/Google\Chrome--enable logging--v=1是否有任何方法可以查看应用程序是否使用指定的参数运行?@ErikWendel,不确定您是否找到了旁道问题的解决方案。然而,我在自定义用户目录上也做了类似的事情——除了在Windows上,自定义目录的路径是
C:\Users\\AppData\Local\Google\Chrome\
,我认为mac上的等效路径是
~/Library/Application Support/Google/Chrome//Chrome\u debug.log
,希望这能有所帮助@Adriano,谢谢你的解决方案/链接。你是说下面的参数--args应该是2>errlog,这意味着级别2(错误)的日志记录到文件errlog?知道这个文件将保存在哪里吗?mac上的Im。
2>errlog
表示“将stderr(句柄为2)重定向到名为“errlog”的文件中”。您可以提供任何文件名(包括完整路径)。我指定了一个完整路径,在重新启动Chrome之后,创建了该文件,这是一个好迹象。尽管如此,在我执行了一些console.error(args)之后,它以红色文本向我显示了参数,但它并没有添加到文本文件中。文本文件中的唯一一行如下:[0418/164110:INFO:breakpad_mac.mm(148)]禁用breakpad这是我打开Chrome的AppleScript脚本,参数为:do shell script“/Applications/Google\\Chrome.app/Contents/MacOS/Google\\Chrome--enable logging--v=1 2>/Users/*myusername*/Documents/errlog.txt”
(function restoreLogs() {
    var timestamps = Object.keys(localStorage).sort();
    timestamps.forEach(function (ts) {
        var logArgs = JSON.parse(localStorage.getItem(ts));
        console.log.apply(console, logArgs);
    });
}());