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



我在应用程序的各个子系统中添加了bunyan日志记录。但当我看到日志文件时,我发现日志不是按时间戳排序的。我认为这是意料之中的事,因为nodejs的异步特性。

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

如果您也在寻找peek性能、最小内存开销等,那么在运行时记录器中保证排序顺序是很棘手的。

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

$ sort your-bunyan-logfile

现在,您可能正在对活动日志进行排序。技术上并不困难,但我不知道有什么能开箱即用。您需要编写一些东西,使内存中的许多行至少保持一小段时间(以方便那些延迟的日志),然后在短时间延迟后显示它们。你需要决定要保留的最大线以及保留多长时间。。。

这一切都超出了你想要的范围,但如果你构建了这样的东西(并称之为livesort),让它从stdin读取并写入stdout,那么你可以做这样的事情来监控实时日志文件:

$ tail -f your-bunyan-logfile | livesort 

祝你好运!-Darrin

最新更新