node-bunyan-lite/examples/raw-stream.js

38 lines
919 B
JavaScript

// Example of a "raw" stream in a Bunyan Logger. A raw stream is one to
// which log record *objects* are written instead of the JSON-serialized
// string.
var bunyan = require('../lib/bunyan');
/**
* A raw Bunyan Logger stream object. It takes raw log records and writes
* them to stdout with an added "yo": "yo" field.
*/
function MyRawStream() {}
MyRawStream.prototype.write = function (rec) {
if (typeof (rec) !== 'object') {
console.error('error: raw stream got a non-object record: %j', rec)
} else {
rec.yo = 'yo';
process.stdout.write(JSON.stringify(rec) + '\n');
}
}
// A Logger using the raw stream.
var log = bunyan.createLogger({
name: 'raw-example',
streams: [
{
level: 'info',
stream: new MyRawStream(),
type: 'raw'
},
]
});
log.info('hi raw stream');
log.info({foo: 'bar'}, 'added "foo" key');