2014-02-12 48 views
1

我已經添加bunyan日誌記錄到我的應用程序的各個子系統。但是當我看到日誌文件時,我發現日誌不是按時間戳排序的。由於nodejs的異步特性,我認爲這是預期的。node.js在bunyan的順序日誌記錄

我想知道是否有任何方法可以改變這個,以便日誌按順序出現(按時間順序)?

回答

0

如果您還在尋找窺視性能,最小的內存開銷等,確保運行時記錄器中的排序順序是棘手的。正如您所建議的,節點的異步性質對此作出了貢獻。

可能不是您想要聽到的答案,但您需要後續處理文件以保證訂單。在Linux的這一個簡單的解決方法就是那種使用上的日誌文件(如果您的時間戳是ISO格式,並在每行前應工作):

$ sort your-bunyan-logfile 

現在,你可能會尋找到對活動日誌進行排序。雖然技術上並不困難,但我並不知道任何可以實現的功能。您需要編寫一些內容至少保持很長時間的行(以方便那些遲到的日誌),然後在短暫延遲後顯示它們。你需要做出一些關於最大線路的決定,以保持它們,並保持它們多久...

這一切都感覺超出你想讓自己,但如果你建立的東西,這樣做(和稱之爲livesort),有它從標準輸入讀取和寫入到標準輸出,那麼你可以做這樣的事情來監控現場日誌文件:

$ tail -f your-bunyan-logfile | livesort 

祝你好運! -Darrin