在学校项目中,我正在运行一些通过控制台窗口输入并从那里运行的javascript。该脚本操纵网页并将结果输出到控制台。
问题:保持/保存这些结果的方式不会因浏览器关闭,脚本故障/页面重新加载或电脑崩溃而消失。
我想过使用Log4js或jStorage(jQuery Storage)这样的框架,但由于这不是我操作的网站,我无法在页面中添加代码或标记。
有没有办法做到这一点?
注意:将结果记录到控制台并不重要,我可以将它们发送到某个地方,或者对它们执行其他操作,如果这样可以更容易记录。
感谢。
答案 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
行)。