Winston的日志流如何工作?

 低調浮華 发布于 2023-02-11 19:08

该温斯顿文档有一个部分流日志它说:

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的日志流的目的?

撰写答案
今天,你开发时遇到什么问题呢?
立即提问
热门标签
PHP1.CN | 中国最专业的PHP中文社区 | PNG素材下载 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有