如何在bunyan中设置'short'输出模式默认情况下

在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,通过pipe道日志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会产生短版本的日志?

你可以传递一个自定义的原始stream到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') 

你可以看看这个文件 ,完成这个工作, 漂亮的打印所有的消息。

bunyan cli工具实际上parsing从运行node myapp.js输出的JSON。 要使用简短的选项打印出漂亮的图片,您仍然需要将其传送到bunyan。 你可以使用bunyan -o shortbunyan -o short你的〜/ .profile或〜/ .bash_profile,这取决于你的系统:

alias bunyans="bunyan -o short"

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

$ node myapp.js | bunyans

没有pipe道到bunyan(或一些其他工具,可以parsing/过滤,重新格式化和显示JSON),它会输出JSON。