您可以通過創建一個writeable stream延長本仁的功能:
const bunyan = require("bunyan"),
stream = require("stream");
class MyStream extends stream.Writable {
/**
* When we have a record from bunyan
*/
write(record) {
console.log("-----> ", record);
return true;
}
}
/** Options for the bunyan instance */
const options = {
name : "my-logger",
serializers : bunyan.stdSerializers,
level : "trace",
streams : [
{ type : "stream", stream : process.stdout, level : "trace" },
{ type : "raw", stream : new MyStream(), level : "trace" }
]
};
/** Create the bunyan logger */
const log = bunyan.createLogger(options);
log.info({ foo: "bar" }, "test");
這將輸出:
{"name":"my-logger","hostname":"localhost","pid":68694,"level":30,"foo":"bar","msg":"test","time":"2017-08-11T11:31:40.136Z","v":0}
-----> { name: 'my-logger',
hostname: 'localhost',
pid: 68694,
level: 30,
foo: 'bar',
msg: 'test',
time: 2017-08-11T11:31:40.136Z,
v: 0 }
您可以替換任何你想到的write(record) { ... }
方法的代碼,處理日誌行本身。
您還可以閱讀更多關於bunyan documentation