node.js在bunyan中的顺序日志记录

node.js在bunyan中的顺序日志记录,node.js,bunyan,Node.js,Bunyan,我已经将bunyan日志添加到我的应用程序的各个子系统中。但是当我看到日志文件时,我发现日志不是按时间戳排序的。我假设这是预期的,因为nodejs的异步特性 我想知道是否有任何方法可以改变这一点,以使日志按顺序(按时间顺序)显示?如果您也在寻找peek性能、最小内存开销等,那么保证运行时日志中的排序顺序是一件棘手的事情。正如您所说,节点的异步性质促成了这一点 可能不是您想要听到的答案,但您需要对文件进行后期处理以保证订单。在linux上,一个简单的解决方案是只对日志文件使用排序(如果时间戳是IS

我已经将bunyan日志添加到我的应用程序的各个子系统中。但是当我看到日志文件时,我发现日志不是按时间戳排序的。我假设这是预期的,因为nodejs的异步特性


我想知道是否有任何方法可以改变这一点,以使日志按顺序(按时间顺序)显示?

如果您也在寻找peek性能、最小内存开销等,那么保证运行时日志中的排序顺序是一件棘手的事情。正如您所说,节点的异步性质促成了这一点

可能不是您想要听到的答案,但您需要对文件进行后期处理以保证订单。在linux上,一个简单的解决方案是只对日志文件使用排序(如果时间戳是ISO格式的,并且在每行的前面,则应该可以使用排序):

现在,您可能需要对实时日志进行排序。技术上不难,但我不知道有什么东西能做到这一点。您需要编写一些东西,在内存中至少保留一段短时间的行数(以方便那些延迟的日志),然后在短时间延迟后显示它们。你需要做出一些决定,确定要保留的最大行数以及保留多长时间

这一切感觉都超出了您想要的范围,但如果您构建了这样做的东西(并称之为
livesort
),让它从stdin读取并写入stdout,那么您可以执行类似的操作来监视实时日志文件:

 $ tail -f your-bunyan-logfile | livesort 
祝你好运! -达林

 $ tail -f your-bunyan-logfile | livesort