流式传输允许您从您选择的传输流式传输日志。
并给出以下代码示例:
//
// Start at the end.
//
winston.stream({ start: -1 }).on('log', function(log) {
console.log(log);
});
我对此的解读是,添加的每条新日志消息都会输出到控制台。配置告诉流从{start: -1}
文件末尾开始,因此只输出新的日志条目。我希望以下 Node 脚本会导致test.log
文件的每个现有行输出到控制台,然后每 500 毫秒输出一个新对象。
var winston = require('winston');
winston.add(winston.transports.File, {
filename: 'test.log'
});
winston.remove(winston.transports.Console);
winston.stream().on('log', function(log) {
console.log(log);
});
setInterval(function(){
winston.log('info', 'help');
}, 500);
我希望看到类似于以下输出的内容:
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:15.806Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:16.307Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:16.809Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:55:17.309Z"}
{"level":"info","message":"help","timestamp":"2013-12-10T05:56:48.316Z"}
实际发生的情况是,日志记录与文件传输一样正常工作(文件每 500 毫秒获取一个新的日志条目),但没有输出到控制台。这console.log(log)
条线永远不会被调用。
我是否遗漏了一些明显的东西,或者误解了 Winston 的日志流的目的?