【问题标题】:Is it possible to separate outputs on different consoles in browsers?是否可以在浏览器的不同控制台上分离输出?
【发布时间】:2021-12-13 05:21:49
【问题描述】:

我已经搜索过,但找不到任何东西。也许我用错了词。

我目前正在开发一个应用程序,该应用程序可以实时向控制台发送大量各种消息,以进行监控和调试。在某些语言的桌面上很容易分成不同的控制台甚至不同的日志文件,但在浏览器中我必须不断过滤。

是否可以在浏览器(Firefox 或 Chrome)中以某种方式具有不同的输出流?有没有办法拥有多个控制台、控制台选项卡...?

【问题讨论】:

  • 您可以做一些事情来使用颜色等设置控制台消息的样式,但只有一个控制台。过去,游戏机数量为零。

标签: javascript google-chrome debugging firefox logging


【解决方案1】:

只有一个控制台,因此您无法将其拆分为多个流,这类似于您可以使用桌面应用程序执行的操作。

您可能会做的一件事是(ab)使用不同级别的输出:

  • console.debug() => 详细
  • console.info() => 信息
  • console.warn() => 警告
  • console.error() => 错误

虽然不是单独的流,但浏览器确实允许您在不同的级别上进行过滤,因此这可以有效地为您提供四个可过滤的“流”来查看不同的数据集。


或者,正如 Pointy 提到的,您也可以使用 %c 为输出着色(甚至设置样式):

console.log('%c Hello World', 'color:#0F0;border:1px solid #F00');

或者在终端中使用转义序列:

console.log('\x1b[33m%s\x1b[0m', 'hi!');

虽然没有办法过滤这些。


最后一个选择是用不同的关键字开始每个“流”,然后简单地过滤这些关键字:

console.log('[User] Bob logged in.');
console.log('[HTTP] Request sent.');
console.log('[Repo] Data acquired.');

我个人可能会使用最后一个。

【讨论】:

  • 谢谢@samanime。最后一个正是我一直在使用的。如果没有人提出任何其他可行的解决方案,我会接受这个作为答案。
猜你喜欢
  • 2011-09-25
  • 2014-01-29
  • 2019-08-29
  • 2016-11-30
  • 2014-04-07
  • 1970-01-01
  • 2011-08-26
  • 2021-12-31
  • 1970-01-01
相关资源
最近更新 更多