【问题标题】:How to set 'short' output mode in bunyan by default默认情况下如何在 bunyan 中设置“短”输出模式
【发布时间】:2014-01-02 09:42:42
【问题描述】:

bunyan 中的常规(原始)日志如下所示:

$ node myapp.js
{"name":"myapp","hostname":"myhost","pid":34572,"level":30,"msg":"start","time":"2013-01-04T07:47:25.814Z","v":0}
{"name":"myapp","hostname":"myhost","pid":34572,"widget_type":"wuzzle","level":30,"msg":"creating a wuzzle","time":"2013-01-04T07:47:25.815Z","v":0}

可以使用“短”输出模式,使用 CLI,通过管道将日志传输到 bunyan -o short

$ node myapp.js  | bunyan -o short
07:46:42.707Z  INFO myapp: start
07:46:42.709Z  INFO myapp: creating a wuzzle (widget_type=wuzzle)

是否可以默认使用“短”模式,所以node myapp.js 会生成短版本的日志?

【问题讨论】:

    标签: node.js logging


    【解决方案1】:

    您可以将自定义原始流传递给 bunyan 并编写自己的漂亮打印机:

      var Logger = require('bunyan')
        , Stream = require('stream')
    
      var stream = new Stream()
      stream.writable = true
    
      stream.write = function(obj) {
         // pretty-printing your message
         console.log(obj.msg)
      }
    
      var logger = new Logger({
         name: 'foo',
         streams: [{
            type: "raw",
            stream: stream,
         }],
         serializers: {
            err: Logger.stdSerializers.err,
            req: Logger.stdSerializers.req,
            res: Logger.stdSerializers.res,
         },
      })
    
      // -------------------------------
    
      logger.info('hello world')
    

    您可以查看this filepretty-print 的所有消息执行此工作。

    【讨论】:

    • 我在尝试您的解决方案(使用 NodeJS LTS v8.11.4)和 TypeScript 时收到 TypeError: Invalid non-string/buffer chunk
    • @alex 我怎样才能将这个相同的流用于旋转文件类型?
    【解决方案2】:

    bunyan cli 工具实际上会解析运行 node myapp.js 时输出的 JSON。要使用 short 选项让它打印得漂亮,您仍然需要将其通过管道传输到 bunyan。您可以根据您的系统向您的 ~/.profile 或 ~/.bash_profile 添加一些内容来为 bunyan -o short 命名:

    alias bunyans="bunyan -o short"

    然后您可以通过执行以下操作来运行它:

    $ node myapp.js | bunyans

    如果不将其传递给 bunyan(或其他可以解析/过滤、重新格式化和显示 JSON 的工具),它将输出 JSON。

    【讨论】:

      猜你喜欢
      • 2010-12-11
      • 2011-05-21
      • 1970-01-01
      • 1970-01-01
      • 2022-12-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-12-13
      相关资源
      最近更新 更多