我已经添加bunyan日志记录到我的应用程序的各个子系统。但是当我看到日志文件时,我发现日志不是按时间戳排序的。由于nodejs的异步特性,我认为这是预期的。node.js在bunyan的顺序日志记录
我想知道是否有任何方法可以改变这个,以便日志按顺序出现(按时间顺序)?
我已经添加bunyan日志记录到我的应用程序的各个子系统。但是当我看到日志文件时,我发现日志不是按时间戳排序的。由于nodejs的异步特性,我认为这是预期的。node.js在bunyan的顺序日志记录
我想知道是否有任何方法可以改变这个,以便日志按顺序出现(按时间顺序)?
如果您还在寻找窥视性能,最小的内存开销等,确保运行时记录器中的排序顺序是棘手的。正如您所建议的,节点的异步性质对此作出了贡献。
可能不是您想要听到的答案,但您需要后续处理文件以保证订单。在Linux的这一个简单的解决方法就是那种使用上的日志文件(如果您的时间戳是ISO格式,并在每行前应工作):
$ sort your-bunyan-logfile
现在,你可能会寻找到对活动日志进行排序。虽然技术上并不困难,但我并不知道任何可以实现的功能。您需要编写一些内容至少保持很长时间的行(以方便那些迟到的日志),然后在短暂延迟后显示它们。你需要做出一些关于最大线路的决定,以保持它们,并保持它们多久...
这一切都感觉超出你想让自己,但如果你建立的东西,这样做(和称之为livesort
),有它从标准输入读取和写入到标准输出,那么你可以做这样的事情来监控现场日志文件:
$ tail -f your-bunyan-logfile | livesort
祝你好运! -Darrin