栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 系统运维 > 运维 > Linux

Linux日志说明

Linux 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Linux日志说明

创作人QQ:851301776,邮箱:lfr890207@163.com
        欢迎大家一起技术交流,本博客主要是自己学习的心得体会,只为每天进步一点点!

个人座右铭:
         1.没有横空出世,只要厚积一定发。
         2.你可以学历不高,你可以不上学,但你不能不学习。

一、前言

        很多工作招聘写着:C/C++, 之前一直很不理解。每个人都有自己最擅长的语言,C或者C++,很多人都说C和C++是一样的,只要代码量达到一定的程度,很容易理解C++的代码。确实是能理解,但是不代表你能写出来。所以学习了一下log4cpp和mudo日志库,这两个日志库本身都是使用C++实现的,本质和我们C语言一样,都是fwrite和write来写。但是有时候造轮子,就是需要学习他们的思想,成为自己的东西。

 

二、日志库的核心  1.日志库设计性能关键点

        (1)批量写入和每条写入性能区别:批量写入效率要高很多

        (2)批量写入和每条写入实时性的区别:效率和实时性成反比

2.日志库的常见功能

        (1)支持日志级别,不通的日志库级别有差异,本质定义消息写入的先后顺序

        (2)日志格式化:根据自己的需求定义每条日志的内容

        (3)日志输出:输出到本地文件、输出到控制台类似于(printf)、通过网络输出到远程服务器(5G基站有些是把日志直接输出到公司服务器的)

        (4)日志回滚:本地日志支持的最大文件限制、当本地文件到达最大文件限制的时候新建一个文件、每天新建一个文件。

        (5)配置文件:这个是作为库的话使用居多,自己写的话,一般都不用或者简单的配置文件即可。

三、fwrite和write的区别

        写日志的时候这两个函数是我们的选择的,但是两个有什么区别那个效率高?

 1.write本质也是调用的fwrite。

 2.fwrite内部有一定的缓存

综合:fwrite效率更高,首选

 

四、日志库比较 1.log4xx

       Apache的产品,属于apache的子项目之一,由log4j移植过来的,移植过来的东西多数都有一个特点,那就是依赖各种库。log4xx就需要依赖apr-utils,编译麻烦

2. log4cpp

        感觉上log4cpp和log4cplus大同小异,支持的功能也类似。它是由log4j移植过来的

3.log4cplus

        log4cplus比log4cpp支持的功能更加全面,支持线程安全,但是也很繁琐,相对比较好。

4.glog

        全称:google glog。比log4系列的都简单,不支持配置文件形式的,我个人觉得比较好

5.zlog

        使用C语言编写,支持windows和Linux,但是Linux不好用,所以慎重选择

6.muduo

        是C++ stream风格,用起来比较自然,异步日志库,建议首选

五、个人总结心得   写日志流程:

     用户组织数据-》fwrite写入内核缓存--》落盘

  主要分为三个阶段:

       (1)第一个阶段用户组织数据

                核心点在:用户组织完成后,把数据放到一个队列中

        (2)写数据到内核缓存

                核心点:

                 1.单独启动一个线程。

                 2.从队列中定时或者使用阻塞接收信号的方式的拿取数据,封装成要写入的数据。

                 3.批量写入,一次写若干条,写入若干个文件

         (4)落盘

                 核心点:写线程用notify+wait_timout的方式刷盘       

六、日志库核心问题 (1)如何提高日志库的性能?

         1.文件批量写入

         2.批量唤醒写线程

         3.写线程使用notify_wite_timeout的方式刷盘

        4.锁的力度

(2)程序崩溃,日志没及时写入,能否找回?

参考:muduo异步日志——core dump查找未落盘的日志 · 语雀

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/643284.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号