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
会生成日志的简短版本?
答案 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 file到pretty-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。