搜索
java - 日志系统能不能保证日志在1min内写到磁盘上
高洛峰
高洛峰 2017-04-17 14:32:54
[Java讨论组]

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

高洛峰
高洛峰

拥有18年软件开发和IT教学经验。曾任多家上市公司技术总监、架构师、项目经理、高级软件工程师等职务。 网络人气名人讲师,...

全部回复(2)
PHP中文网

不能,为了提升性能,必然会使用内存缓冲,磁盘缓存区之间的技术。

PHP中文网

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

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习
PHP中文网抖音号
发现有趣的

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号