如何在bunyan中默认设置“短”输出模式

时间:2014-01-02 09:42:43

标签: node.js logging

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会生成日志的简短版本?

2 个答案:

答案 0 :(得分:9)

您可以将自定义原始流传递给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所有邮件。

答案 1 :(得分:0)

bunyan cli工具实际上解析了从运行node myapp.js输出的JSON。要使用短选项打印漂亮,你仍然需要将它管道到bunyan。您可以通过向〜/ .profile或〜/ .bash_profile添加内容来替换bunyan -o short,具体取决于您的系统:

alias bunyans="bunyan -o short"

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

$ node myapp.js | bunyans

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