开发者社区 问答 正文

日志系统能不能保证日志在1min内写到磁盘上

日志系统,如log4j或者glog等等有没有对于日志落到磁盘上的时间有没有什么保证?如何实现日志系统能在1min内将日志写到磁盘上。

展开
收起
蛮大人123 2016-02-25 11:20:53 2871 分享 版权
1 条回答
写回答
取消 提交回答
  • 我说我不帅他们就打我,还说我虚伪

    如果对落在硬盘上的时间有要求,可能需要自己来写;
    就像我们平时使用输出使用的fprintf,为了性能考虑,运行库的函数都是带了缓冲的(缓存一般在4K左右,但不一定);有缓冲能减少系统调用的次数;可能调fprintf好几次,才会有一次调用write真正写到硬盘;
    如果自己实现,为了实时性考虑,直接使用系统调用接口write()来记录日志;
    如果有1min的缓冲容忍,写日志的时候可以使用fprintf,但每分钟调用一次fflush()强制日志落到硬盘上;
    PS:log4j上是否有这样的强刷接口,可以查查资料

    2019-07-17 18:47:19
    赞同 展开评论