C++第三方日志库Glog基本语法详解

目录
  • 1.错误类型
  • 2.输出日志
  • 3.条件输出
  • 4.常用函数
  • 5.常用参数(Flags)
  • 6.日志类型

上文(C++第三方日志库Glog的安装与使用超详解(精选))介绍了glog的安装、配置与基本使用案例,本文将详细介绍一下glog的基本语法,结合上文一起食用效果更佳哦~

1.错误类型

glog有四个错误级别,枚举如下:

enum SeverityLevel
{
  google::INFO = 0,
  google::WARNING = 1,
  google::ERROR = 2,
  google::FATAL = 3,
};

2.输出日志

LOG(INFO) << "info test";  //输出一个Info日志
LOG(WARNING) << "warning test";  //输出一个Warning日志
LOG(ERROR) << "error test";  //输出一个Error日志
LOG(FATAL) << "fatal test";  //输出一个Fatal日志,这是最严重的日志并且输出之后会中止程序

3.条件输出

LOG_IF(INFO, num_cookies > 10) << "Got lots of cookies";  //当条件满足时输出日志

LOG_EVERY_N(INFO, 10) << "Got the " << google::COUNTER << "th cookie";  //google::COUNTER 记录该语句被执行次数,从1开始,在第一次运行输出日志之后,每隔 10 次再输出一次日志信息
LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << google::COUNTER << "th big cookie";  //上述两者的结合,不过要注意,是先每隔 10 次去判断条件是否满足,如果滞则输出日志;而不是当满足某条件的情况下,每隔 10 次输出一次日志信息
LOG_FIRST_N(INFO, 20) << "Got the " << google::COUNTER << "th cookie";  //当此语句执行的前 20 次都输出日志,然后不再输出

4.常用函数

google::SetLogDestination(google::GLOG_INFO, "log/prefix_");  //设置特定严重级别的日志的输出目录和前缀。第一个参数为日志级别,第二个参数表示输出目录及日志文件名前缀

google::SetLogFilenameExtension("logExtension");  //在日志文件名中级别后添加一个扩展名。适用于所有严重级别
google::SetStderrLogging(google::GLOG_INFO);  //大于指定级别的日志都输出到标准输出

5.常用参数(Flags)

FLAGS_logtostderr = true;  //设置日志消息是否转到标准输出而不是日志文件

FLAGS_alsologtostderr = true;  //设置日志消息除了日志文件之外是否去标准输出
FLAGS_colorlogtostderr = true;  //设置记录到标准输出的颜色消息(如果终端支持)
FLAGS_log_prefix = true;  //设置日志前缀是否应该添加到每行输出
FLAGS_logbufsecs = 0;  //设置可以缓冲日志的最大秒数,0指实时输出
FLAGS_max_log_size = 10;  //设置最大日志文件大小(以MB为单位)
FLAGS_stop_logging_if_full_disk = true;  //设置是否在磁盘已满时避免日志记录到磁盘

6.日志类型

日志有七个类型,其中最常用的是内置日志,枚举如下:

LOG    //内置日志
VLOG    //自定义日志
DLOG    //DEBUG模式可输出的日志
DVLOG    //DEBUG模式可输出的自定义日志
SYSLOG    //系统日志,同时通过 syslog() 函数写入到 /var/log/message 文件
PLOG    //perror风格日志,设置errno状态并输出到日志中
RAW_LOG        //线程安全的日志,需要#include <glog/raw_logging.h>

参考:

https://www.cnblogs.com/tianyajuanke/archive/2013/02/22/2921850.html

https://www.cnblogs.com/hiloves/p/6009707.html

到此这篇关于C++第三方日志库Glog基本语法介绍的文章就介绍到这了,更多相关C++第三方日志库Glog语法内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • C++第三方日志库log4cplus的安装与使用配置教程

    目录 一.log4cplus介绍 二.log4cplus下载 三.log4cplus配置 3.1打开解决方案 3.2进行相应设置 3.3目标程序的配置 四.测试Demo 一.log4cplus介绍 log4cplus是C++编写的开源的日志系统,前身是java编写的log4j系统,受Apache Software License保护,作者是Tad E. Smith. log4cplus具有线程安全.灵活.以及多粒度控制的特点,通过将日志划分优先级使其可以面向程序调试.运行.测试.和维护等全生命周

  • C++第三方日志库Glog的安装与使用介绍

    目录 一.glog介绍 二.glog下载 三.环境介绍 三.glog的编译详解 3.1利用CMake进行编译,生成VS解决方案 3.2利用VS对项目进行编译 四.glog的基本使用 4.1创建VS项目 4.2将glog相关文件包含在项目中 4.3编写代码进行测试 4.4测试代码2 五.代码详解 5.1define 5.2include 参考: 一.glog介绍 Google Logging(glog)是一个实现应用程序级日志记录的C++98库.该库提供了基于C++风格流和各种辅助宏的日志API.

  • C++第三方日志库Glog基本语法详解

    目录 1.错误类型 2.输出日志 3.条件输出 4.常用函数 5.常用参数(Flags) 6.日志类型 上文(C++第三方日志库Glog的安装与使用超详解(精选))介绍了glog的安装.配置与基本使用案例,本文将详细介绍一下glog的基本语法,结合上文一起食用效果更佳哦~ 1.错误类型 glog有四个错误级别,枚举如下: enum SeverityLevel { google::INFO = 0, google::WARNING = 1, google::ERROR = 2, google::F

  • .NET 6开发TodoList应用引入第三方日志库

    目录 1.需求 2.目标 3.原理和思路 4.实现 4.1日志配置实现 4.2主程序配置 4.3注入使用 5.验证 1.需求 在我们项目开发的过程中,使用.NET 6自带的日志系统有时是不能满足实际需求的,比如有的时候我们需要将日志输出到第三方平台上,最典型的应用就是在各种云平台上,为了集中管理日志和查询日志,通常会选择对应平台的日志SDK进行集成.使用Serilog提供的多种Sink,可以实现将日志写入不同云平台或者是非云平台的日志存储中去,这是我们这篇文章讲要研究的内容. 2.目标 我们将为

  • Python中第三方库Faker的使用详解

    目录 背景介绍 实战:模拟1w条数据写入Excel Python库讲解 1. 生成姓名 2. 生成详细地址 3. 生成所在省份 4. 生成手机号 5. 生成身份证号 6. 生成出生年月 7. 生成邮箱 补充 1. address 地址 2. person 人物 3. color 颜色 4. company 公司 5. credit_card 银行信用卡 6. date_time 时间日期 7. file 文件 8. internet 互联网 9. job 工作 10. lorem 乱数假文 11

  • python第三方库pygame的使用详解

    作用:pygame一般用来做游戏 注意:1.在使用pygame提供的功能之前,需要调用init方法 2.在游戏结束前需要调用 quit 方法 pygame中的各个函数: 1.pygame.init():该函数在使用pygame时进行初始化,只有引用了该函数才能使用pygame提供的所用功能 2.pygame.Rect():该函数可以设置一张图片的位置以及大小,这是一个特殊的函数,不需要引用init函数都可以使用 3.pygame.display.set_mode(resolution=(0,0)

  • Android Kotlin开发实例(Hello World!)及语法详解

    Android Kotlin开发实例及语法详解 前言 Kotlin是一种在 Java虚拟机上执行的静态型别编程语言,它主要是由俄罗斯圣彼得堡的JetBrains开发团队所发展出来的编程语言.该语言有几个优势 1. 简洁 它大大减少你需要写的样板代码的数量. 2. 安全 避免空指针异常等整个类的错误. 3. 通用 构建服务器端程序.Android 应用程序或者在浏览器中运行的前端程序. 4. 互操作性 通过 100% Java 互操作性,利用 JVM 既有框架和库. 配置 在我们的AndroidS

  • 对Golang import 导入包语法详解

    package 的导入语法 写 Go 代码的时经常用到 import 这个命令用来导入包,参考如下: import( "fmt" ) 然后在代码里面可以通过如下的方式调用: fmt.Println( "我爱北京天安门" ) fmt 是 Go 的标准库,它其实是去 GOROOT 下去加载该模块,当然 Go 的 import 还支持如下两种方式来加载自己写的模块: 相对路径 import "./model" // 当前文件同一目录的 model 目录

  • 对linux下软件(库)的更新命令详解

    在ubuntu服务器下安装包的时候,经常会用到sudo apt-get install 包名 或 sudo pip install 包名,那么两者有什么区别呢? 1.区别 pip用来安装来自PyPI(https://www.python.org/)的python所有的依赖包,并且可以选择安装任何在PyPI上已上传的先前版本的依赖包,个人认为是python相关的包和第三方包以及各种版本: apt-get可以用来安装软件.更新源.也可以用来更新自Ubuntu(https://launchpad.ne

  • C语言ASM汇编内嵌语法详解

    3 GCC Inline ASM GCC 支持在C/C++代码中嵌入汇编代码,这些汇编代码被称作GCC Inline ASM--GCC内联汇编.这是一个非常有用的功能,有利于我们将一些C/C++语法无法表达的指令直接潜入C/C++代码中,另外也允许我们直接写 C/C++代码中使用汇编编写简洁高效的代码. 1.基本内联汇编 GCC中基本的内联汇编非常易懂,我们先来看两个简单的例子: __asm__("movl %esp,%eax"); // 看起来很熟悉吧! 或者是 __asm__(&q

随机推荐