【问题标题】:In Chrome, how can I get the javascript console output to stdout/stderr在 Chrome 中,如何将 javascript 控制台输出到 stdout/stderr
【发布时间】:2016-08-23 11:01:36
【问题描述】:

我正在使用谷歌浏览器,并且有一个将一些信息打印到 Javascript 控制台的页面 - 我想将其通过管道传输到脚本。

我找到了如何在 OS X 上显示 Chrome 的标准输出 - 通过从终端运行以下命令(需要一个新的用户配置文件以确保该命令生成一个新应用程序,否则我们将打开现有的应用程序并没有输出)。

但是,我打印到终端的只是内部 Chrome 信息。

有没有办法将所有 JS 控制台输出打印到 stdout/stderr,以便我可以将以下命令的输出通过管道传输到我的脚本?

TIA!

/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --user-data-dir=temp-dir

【问题讨论】:

    标签: javascript google-chrome


    【解决方案1】:
    • 使用标志从命令行启用logging

      --enable-logging --v=stderr

    这会记录 Chrome 在内部执行的所有操作,但也会记录所有 console.log() 消息。日志文件名为chrome_debug.log,位于User Data Directory

    【讨论】:

    • 不太对,但你的小费让我明白了,所以谢谢!如果我启用日志记录 强制使用临时用户目录(如前所述,我需要在 OS X 上执行此操作),那么我在您提到的调试文件中看不到输出。凭直觉我去寻找,确实有一个文件temp-dir/chrome_debug.log,其中包含我想要的输出:) 所以答案是--enable-logging --v=1 --user-data-dir=temp-dir,以获得我在OS X上需要的东西。
    • --enable-logging=stderr 也可以
    • 嘿,你知道 Firefox 会是怎样的吗?
    • 这种情况下的chrome_debug.log会充满控制台上没有出现的数据,导致无法解析。
    • 这在 raspberry pi 版本 10 buster 上完美运行 - 这是一个 debian。查看我使用的日志: sudo tail -f /rds/home/rds-user/.config/chromium/chrome_debug.log