【问题标题】:How can I make NodeJS's console.log always print output within a single line no matter what?我怎样才能使 NodeJS 的 console.log 无论如何始终在一行中打印输出?
【发布时间】:2023-02-09 02:33:59
【问题描述】:

有什么方法可以格式化终端中通过 console.log 记录的 JSON 吗?

我正在记录大量调试数据,如果记录的数据超过一定长度,终端会在多行中记录它。无论数据的长度如何,我都想将其更改为一行登录。有什么办法吗?

总之,我想改变这种日志风格:

[12:34:56][DEBUG][CODE] - {
  data: {
    action: 'action',
    url: '/path/to/my/api?variableOne=valueOne&variableTwo=valueTwo'
  }
}

对于这种日志风格:

[12:34:56][DEBUG][CODE] - { data: { action: 'action', url: '/path/to/my/api?variableOne=valueOne&variableTwo=valueTwo' } }

【问题讨论】:

    标签: visual-studio-code


    【解决方案1】:

    有什么方法可以格式化通过终端中的 console.log 记录的 JSON 吗?

    就在这里。创建自定义控制台对象。请参阅the docs 了解如何执行此操作以及您可以指定哪些选项。特别是,另请参阅inspectOptions docs

    您要查找的特定 inspectOptions 选项是 breaklengthcompact

    breakLength: <integer> 输入值被分割成多行的长度。设置为 Infinity 将输入格式化为单行(结合 compact 设置为 true 或任何数字 >= 1)。默认80

    compact<boolean> | <integer> 将其设置为false 会导致每个对象键显示在一个新行上。它将在比breakLength 更长的文本中换行。如果设置为数字,只要所有属性都适合breakLength,最多n 内部元素将合并在一行中。短数组元素也组合在一起。有关详细信息,请参阅下面的示例。默认3

    所以既然你问

    我想将其更改为登录一行,无论数据长度如何

    那么你可能想做这样的事情:

    const { Console } = require('node:console')
    console = new Console({
      stdout: process.stdout,
      stderr: process.stderr,
      // ignoreErrors, colorMode, groupIndentation
      inspectOptions: {
        // ...
        breakLength: Infinity,
        compact: true,
        // ...
      }
    });
    

    然后你可以用console.log({a:1,b:2,c:3,hello:"world!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!"});测试它。

    【讨论】:

      猜你喜欢
      • 2021-12-25
      • 1970-01-01
      • 2023-02-06
      • 1970-01-01
      • 2021-04-18
      • 2021-03-17
      • 2020-10-12
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多