该温斯顿文档有一个部分流日志它说:
Streaming允许您从所选的传输中流回日志.
并给出以下代码示例:
// // Start at the end. // winston.stream({ start: -1 }).on('log', function(log) { console.log(log); });
我对此的解读是,添加的每条新日志消息都将输出到控制台.该{start: -1}
配置告诉流在文件末尾开始,所以只有新的日志条目输出.我希望以下Node脚本会导致test.log
文件的每个现有行输出到控制台,然后每500ms输出一个新对象.
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的日志流的目的?