2014-01-02 2 views
6

Regular (необработанные) журналы в Бюньян выглядит следующим образом:Как установить «короткий» режим вывода в 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} 

можно использовать «короткий» режим вывода, используя интерфейс командной строки, с помощью трубопроводов бревен на 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 произведет короткую версию журналов?

ответ

9

Вы можете передать пользовательские необработанный поток в Буньяна и написать свой собственный довольно-принтер:

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 всех сообщений.

0

Инструмент bunyan cli на самом деле разбирает JSON, который выводится с работы node myapp.js. Чтобы он печатался довольно с коротким вариантом, вам все равно придется направить его на bunyan. Вы можете псевдоним bunyan -o short, добавляя что-то в ~/.profile или ~/.bash_profile в зависимости от вашей системы:

alias bunyans="bunyan -o short"

Затем вы можете запустить его, выполнив следующие действия:

$ node myapp.js | bunyans

Без подачи его на bunyan (или какой-нибудь другой инструмент, который может анализировать/фильтровать, переформатировать и отображать JSON), он выведет JSON.

Смежные вопросы