【问题标题】:console.log to a custom categoryconsole.log 到自定义类别
【发布时间】:2020-09-09 14:56:06
【问题描述】:

我需要将所有带有标签的日志(比如 TelemetryLogs)显示到一个组中,以便我可以在一个视图中查看所有网络调用流。

要求是在分组视图中查看网络调用 - 比如说带有 key-name 、 key-type 和 log-object 的表。

我们给企业的直接建议是,我们将使用前缀登录到控制台,并允许他们使用过滤器表达式进行过滤。 例如:console.log(``Telemetry %s %s %o``, "name", "type", { someobject: 'someval' })

但他们希望该组显示为 chrome 中某个类别下的子组(下图)。显然,他们计划推出类似的组,并且不想记住表达式列表,以过滤掉他们想要的内容。

然后我意识到 stackoverflow 是检查这是否可能的正确位置,如果不可能,还有哪些其他分组显示选项可以帮助我们实现类似的期望。

注意:用例的背景是,在我们的结对编程过程中,有时我们最终会坐在我们旁边的业务分析师。他们中的一个人意识到,如果他们在开发过程中对遥测数据有一个统一的运行视图,这将有助于他/她发现早期问题......

【问题讨论】:

  • “然后我意识到 stackoverflow 是检查这是否可能的正确位置” - 正确的位置是您将要使用的浏览器的文档,如果这浏览器支持“自定义组”之类的东西 -> Console Overview | Tools for Web Developers | Google Developers
  • 如果你有一个直接的工作流程,你可以做的最好的事情是在开始时group,最后是groupEnd,但这会影响所有日志记录。客户端日志记录非常有限,这就是为什么真正的日志记录会返回到服务器——无论如何,这应该可以在服务器端轻松追踪。
  • @DaveNewton :你是对的。我们在服务器端确实有 kibana 可视化工具。这是用于结对编程期间的开发监视器......日志大约需要 3 到 5 分钟才能出现在可视化工具中
  • @Raghav 在调试期间不要使用 Kibana,使用常规日志记录。在任何情况下,您能做的最好的事情就是记录有意义的文本(手动或通过日志记录包)或将数据存储在某处并在“结束”处转储。您也可以为日志消息着色/样式,这有助于发现“相关”控制台输出。

标签: javascript google-chrome console google-chrome-devtools


【解决方案1】:

无法在开发人员工具面板中显示的控制台当前 API standard 中创建子组 - 有组相关功能可以将多个日志语句分组到一个语句下,但这不是你想要的,无论如何在这里是我想到的两个选项

  • 以一种可以轻松过滤的方式记录消息的结构,使用内置的日志过滤器可能具有以下性质(groupId - logType - 消息)(无论如何,最好有一个结构日志)

  • 开发人员工具是页面的一部分,它们可以具有自定义扩展功能,您可以创建一个扩展,将子组以及您需要的功能添加到该面板,或者您可以添加一个选项卡自己过滤该日志(看起来更容易)

无论如何,需要注意的重要一点是,如果日志对您很重要,则应将它们发送到外部服务,以确保不会丢失数据,并在日志上启用高级加载和提取功能。无论如何,控制台中客户端的日志只对开发有用,那么值得吗?

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-09
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多