日志系統(tǒng),如log4j或者glog等等有沒有對于日志落到磁盤上的時間有沒有什么保證?如何實現(xiàn)日志系統(tǒng)能在1min內(nèi)將日志寫到磁盤上。
2 回答

幕布斯1329279
TA貢獻8條經(jīng)驗 獲得超0個贊
如果對落在硬盤上的時間有要求,可能需要自己來寫;
就像我們平時使用輸出使用的fprintf,為了性能考慮,運行庫的函數(shù)都是帶了緩沖的(緩存一般在4K左右,但不一定);有緩沖能減少系統(tǒng)調(diào)用的次數(shù);可能調(diào)fprintf好幾次,才會有一次調(diào)用write真正寫到硬盤;
如果自己實現(xiàn),為了實時性考慮,直接使用系統(tǒng)調(diào)用接口write()來記錄日志;
如果有1min的緩沖容忍,寫日志的時候可以使用fprintf,但每分鐘調(diào)用一次fflush()強制日志落到硬盤上;
PS:log4j上是否有這樣的強刷接口,可以查查資料;
添加回答
舉報
0/150
提交
取消