- fwrite -> 用户态缓冲区 -> write ->内核
- write -> 内核
当每次写入的数据较小(小于1024)的时候fwrite的效率更高。但如果每次写的数据很多(比如2900)则write的效率更高,因为fwrite要进行二次拷贝
日志输出方式:
- 输出到控制台
- 输出到本地文件
- 通过网络输出到远程服务器
日志回滚:本地日志支持最大文件限制,当本地日志到达最大文件限制的时候新建一个文件,每天至少一个文件。
Log4cpp配置文件:
可以分模块打印不同的日志,也可以把不同的模块打印到同一个日志里
同步日志方式只适合用在客户端里面,异步日志方式适合用在服务器上面
RollingFileAppender要先检查文件的大小判断要不要新开一个文件,回滚的时候只需要修改文件的名字,然后再新开一个文件即可,所以性能没有FileAppender好。

本文探讨了C++日志库log4cpp的效率与使用场景,指出fwrite与write在不同数据量下的优劣。讨论了日志的输出方式,包括控制台、本地文件和远程服务器,并介绍了日志回滚机制。Log4cpp配置允许模块化日志管理和同步、异步日志方式。 RollingFileAppender的性能与FileAppender对比,以及解决同步方式中延迟写入问题的方法。最后分析了muduo日志库的高性能特性,如批量写入、双缓冲和通知策略,强调了异步日志机制的关键设计决策。
最低0.47元/天 解锁文章
806

被折叠的 条评论
为什么被折叠?



