2014-02-12 46 views
1

我已经添加bunyan日志记录到我的应用程序的各个子系统。但是当我看到日志文件时,我发现日志不是按时间戳排序的。由于nodejs的异步特性,我认为这是预期的。node.js在bunyan的顺序日志记录

我想知道是否有任何方法可以改变这个,以便日志按顺序出现(按时间顺序)?

回答

0

如果您还在寻找窥视性能,最小的内存开销等,确保运行时记录器中的排序顺序是棘手的。正如您所建议的,节点的异步性质对此作出了贡献。

可能不是您想要听到的答案,但您需要后续处理文件以保证订单。在Linux的这一个简单的解决方法就是那种使用上的日志文件(如果您的时间戳是ISO格式,并在每行前应工作):

$ sort your-bunyan-logfile 

现在,你可能会寻找到对活动日志进行排序。虽然技术上并不困难,但我并不知道任何可以实现的功能。您需要编写一些内容至少保持很长时间的行(以方便那些迟到的日志),然后在短暂延迟后显示它们。你需要做出一些关于最大线路的决定,以保持它们,并保持它们多久...

这一切都感觉超出你想让自己,但如果你建立的东西,这样做(和称之为livesort),有它从标准输入读取和写入到标准输出,那么你可以做这样的事情来监控现场日志文件:

$ tail -f your-bunyan-logfile | livesort 

祝你好运! -Darrin