node.js - bunyan默认如何设置 'short'输出模式

标签 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 将生成短版本的日志?

最佳答案

您可以将自定义原始流传递给 bunyan 并编写您自己的 pretty-print :

  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 file这正是对 pretty-print 的工作所有消息。

关于node.js - bunyan默认如何设置 'short'输出模式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20880062/

相关文章:

javascript - 使用 Twilio 将消息转发到另一个号码

logging - stackdriver 日志记录如何断言条目的严重性?

java - Log4j2 - 写入以 XML 声明的特定记录器

iphone - 要求用户在 iPhone 崩溃后发送崩溃日志

Python 日志记录 : disable output to stdout

Node.js:带有 CNAME 记录的 url 路由

javascript - 使用 Socket IO 从数据库获取数据时使用 React 的哪种生命周期方法

javascript - 运行 Node.js 服务器时出现问题

javascript - Grunt - fatal error 未定义不是函数

bash - 如何仅检查自上次 checkin bash以来添加的行