我已經添加bunyan日誌記錄到我的應用程序的各個子系統。但是當我看到日誌文件時,我發現日誌不是按時間戳排序的。由於nodejs的異步特性,我認爲這是預期的。node.js在bunyan的順序日誌記錄
我想知道是否有任何方法可以改變這個,以便日誌按順序出現(按時間順序)?
我已經添加bunyan日誌記錄到我的應用程序的各個子系統。但是當我看到日誌文件時,我發現日誌不是按時間戳排序的。由於nodejs的異步特性,我認爲這是預期的。node.js在bunyan的順序日誌記錄
我想知道是否有任何方法可以改變這個,以便日誌按順序出現(按時間順序)?
如果您還在尋找窺視性能,最小的內存開銷等,確保運行時記錄器中的排序順序是棘手的。正如您所建議的,節點的異步性質對此作出了貢獻。
可能不是您想要聽到的答案,但您需要後續處理文件以保證訂單。在Linux的這一個簡單的解決方法就是那種使用上的日誌文件(如果您的時間戳是ISO格式,並在每行前應工作):
$ sort your-bunyan-logfile
現在,你可能會尋找到對活動日誌進行排序。雖然技術上並不困難,但我並不知道任何可以實現的功能。您需要編寫一些內容至少保持很長時間的行(以方便那些遲到的日誌),然後在短暫延遲後顯示它們。你需要做出一些關於最大線路的決定,以保持它們,並保持它們多久...
這一切都感覺超出你想讓自己,但如果你建立的東西,這樣做(和稱之爲livesort
),有它從標準輸入讀取和寫入到標準輸出,那麼你可以做這樣的事情來監控現場日誌文件:
$ tail -f your-bunyan-logfile | livesort
祝你好運! -Darrin