C++服务器框架开发4——日志系统logger/.cpp与.cc

该专栏记录了在学习一个开发项目的过程中遇到的疑惑和问题。
其教学视频见:[C++高级教程]从零开始开发服务器框架(sylar)

上一篇:C++服务器框架开发3——协程与线程的简单理解/并发与并行

C++服务器框架开发4——日志系统logger

  • 目前进度
  • .cpp与.cc

目前进度

目前学习完第二个视频,视频up对log.h中的logger的几个成员函数进行了定义。
要点:

  1. 在log.h中声明了5个写不同级别日志的函数,1个log函数,1个增加和1个删除日志输出目标的函数。

  2. 在log.h中声明了几个变量,如下图。
    在这里插入图片描述

  3. 在log.cc中定义这些函数,如下图。
    在这里插入图片描述

添加addAppender():加入列表m_appenders中。
删除delAppender():for循环查找到该对象,然后将其从m_appenders中删除。
写日志logger::log():检查该级别是否大于或等于设定的级别,是写日志,否则不写。其中的i->log()是调用了Appender的成员函数log()。
Logger::debug()、Logger::info()、Logger::warn()、Logger::error()、Logger::fatal():5种级别的写日志函数,它们调用logger::log()来实现写日志,logger::log()根据得到的参数level来决定是否进行写日志。:这5个函数中,实际上应该是写错了,里面的dubug应该改为log,即调用上面那个logger::log()。

.cpp与.cc

我之前学习C++基础以及刷题时,写的都是.cpp文件,今天学这个项目,发现原作者定义的是.cc文件。
查了一下,发现原来是因为以前C++的源文件是用.c的,这会导致有些编译器无法区分该文件时C语言的还是C++语言的。后来就出现了.c++ .cc .cxx .C。由于某些编译器不支持大小写,有些编译器不支持符号+,所以.c++ 和.C适用性不广。而在Dos和Windows中,cpp用的比较广(c plus plus)。
总结:如果编译器能编译成功,用哪种后缀都是可以的。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/25208.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

仓储服务-采购业务

1.合并采购需求 请求参数 {purchaseId: 1, //整单iditems:[1,2,3,4] //合并项集合 }(1) 合并时如果未选择合并的采购单,则先新建采购单然后合并到新建的采购单 新建的采购单,可以手动给采购单分配人员 (2)合并时选中了采购单…

Ansible基础五——条件语句、循环语句、handlers、任务失败处理

文章目录 一、 循环语句1.1 单量循环1.2 多量循环1.3 老版本用法1.4 loopregister 二、条件判断2.1 根据变量状态判断2.2 根据变量是否存在判断2.3 根据事实判断2.4 多条件判断2.4.1 and用法2.4.2 or用法 2.5 循环判断2.6 根据上个任务结果判断 三、handlers处理程序四、任务失…

C4d渲染农场的定义、应用领域和未来发展趋势

Cinema 4D(C4D)是一款常用于3D动画、建模和渲染的软件,由Maxon Computer开发。随着CG行业的不断发展和应用场景的多样化,C4D渲染农场成为了CG制作中不可或缺的一环。本文将深入介绍C4D渲染农场的概念、特点、应用以及未来发展趋势…

MYSQL索引连环18问(上)

MYSQL索引连环18问(上) 1.索引是什么? 索引是一种特殊的文件(InnoDB数据表上的索引是表空间的一个组成部分),它们包含着对数据表里所有记录的引用指针。索引是一种数据结构。数据库索引,是数据库管理系统中一个排序的…

使用electron套壳vue实现跨平台桌面应用

electron和vue是什么就不用多说了,前端都知道 先展示一波demo 传送门 前提条件 要有一个vue项目,老项目跳过 vue create hello-world改造vue项目 在根目录新建一个background.js文件,也可以叫其他名字,作为package.json的main…

如何查看mysql里面的锁(详细)

通过查询表统计信息查看 information_schema库下相关事务表和锁相关信息表介绍innodb_trx存储了当前正在执行的事务信息trx_id:事务ID。trx_state:事务状态,有以下几种状态:RUNNING、LOCK WAIT、ROLLING BACK 和 COMMITTING。trx…

shell变量的使用 rhce(25)

目录 1.总结变量的类型及含义? 2.实现课堂案例计算长方形面积?(6种方式) 3.定义变量urlhttps://blog.csdn.net/weixin_45029822/article/details/103568815(通过多种方法实现) (1&#xff0…

企业级帮助中心编写方案

随着互联网的飞速发展,越来越多的企业开始将客户服务转向线上服务。在这个过程中,企业级帮助中心因其高效的自助服务和低成本的维护方式受到越来越多企业的青睐。下文将从如何编写一个高质量的企业级帮助中心入手,为您介绍具体步骤。 一、明…

Coursera—Andrew Ng机器学习—课程笔记 Lecture 5 Octave Tutorial

5.1 基本操作 参考视频: 5 - 1 - Basic Operations (14 控制输出格式的长短 min).mkv 5.1.1 简单运算 不等于符号的写法是这个波浪线加上等于符号 ( ~ ),而不是等于感叹号加等号( ! ) 1 1 1   % 判断相等 2 1 ~ 2   % 判断不等 3 1 && 0   …

jsp基于 JavaWeb+springboot 的校园快递驿站管理系统

不同的系统提供的服务也不相同,其对应的功能也不相同,所以,系统开工前,需要明确其用途,确定其功能。由此,才可以进行各个任务的开展。 校园驿站管理系统经过分析,确定了其需要设置管理员的角色&…

聚焦2023北京安博会,超高清安防应用将成潮流

(1)2023北京安博会 中国安全防范产品行业协会主办并承办的第十六届(2023)中国国际社会公共安全产品博览会(Security China 2023),将于2023年6月7~10日在北京首钢会展中心开幕。安博…

前端vscode插件bito

GPT-4和ChatGPT越来越火,前端人员是否也能在日常工作中尝试体验其带来的乐趣呢? 答案是可以的!安排!! 今天介绍一款vscode的插件 【bito】。 安装 安装后只需要自己注册一下,创建一个workspace就可以使用…

实验室信息系统源码,LIS源码

实验室信息系统源码,LIS源码 技术细节: SaaS架构的Client/Server应用 体系结构:Client/Server架构 客户端:WPFWindows Forms 服务端:C# .Net 数据库:Oracle 接口技术:RESTful API HttpW…

全面解析Linux指令和权限管理

目录 一.指令再讲解1.时间相关的指令2.find等搜索指令与grep指令3.打包和压缩相关的指令4.一些其他指令与热键二.Linux权限1.Linux的权限管理2.文件类型与权限设置3.目录的权限与粘滞位 一.指令再讲解 1.时间相关的指令 date指令: date 用法:date [OPTION]… [FOR…

如何在Linux中更改SSH端口?

SSH(Secure Shell)是一种安全的远程登录协议,它允许您通过网络远程连接到Linux系统并进行管理操作。默认情况下,SSH使用22端口进行通信。然而,为了增强系统的安全性,有时候我们需要更改SSH端口,…

linux 找回root密码(CentOS7.6)

linux 找回root密码(CentOS7.6) 首先,启动系统,进入开机界面,在界面中按“e”进入编辑界面。如图 2. 进入编辑界面,使用键盘上的上下键把光标往下移动,找到以““Linux16”开头内容所在的行数”,在行的最后…

C4D R26 渲染学习笔记 建模篇(2):手动建模

文章目录 前文回顾介绍篇建模篇 手动建模建模快捷键手动模型快捷键大全常用操作N系快捷键K系快捷键U系快捷键 结尾 前文回顾 介绍篇 C4D R26 渲染学习笔记(1):C4D版本选择和初始UI框介绍 C4D R26 渲染学习笔记(2)&am…

Dubbo高可用

1.zookeeper宕机与dubbo直连 1.1.现象:zookeeper注册中心宕机,还可以消费dubbo暴露的服务。 原因: 监控中心宕掉不影响使用,只是丢失部分采样数据数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但…

软考A计划-试题模拟含答案解析-卷十二

点击跳转专栏>Unity3D特效百例点击跳转专栏>案例项目实战源码点击跳转专栏>游戏脚本-辅助自动化点击跳转专栏>Android控件全解手册点击跳转专栏>Scratch编程案例 👉关于作者 专注于Android/Unity和各种游戏开发技巧,以及各种资源分享&am…

AB Test数学原理及金融风控应用

1 什么是AB Test AB测试是一种常用的实验设计方法,用于比较两个或多个不同处理或策略的效果,以确定哪个处理或策略在某个指标上表现更好。在AB测试中,将随机选择一部分用户或样本,将其分为两个或多个组,每个组应用不同…