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

 更新时间:2022年02月24日 10:05:54   作者:wendy_ya  
这篇文章主要介绍了C++第三方日志库Glog基本语法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下

上文(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语法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • C语言实现父进程主动终止子进程的方法总结

    C语言实现父进程主动终止子进程的方法总结

    一般的情况,子进程自己运行完后,执行exit 或者return 后,父进程wait.  waitpid收回子进程,但子进程是一个循环等待状态不主动退出,父进程可以采用文中介绍的几种方法,需要的朋友可以参考下
    2023-10-10
  • 浅析C语言中的内存布局

    浅析C语言中的内存布局

    以下是对C语言中的内存布局进行了详细的分析介绍。需要的朋友可以过来参考下
    2013-08-08
  • Visual Studio Code (VSCode) 配置搭建 C/C++ 开发编译环境的流程

    Visual Studio Code (VSCode) 配置搭建 C/C++ 开发编译环境的流程

    记得N年前刚开始接触编程时,使用的是Visual C++6.0,下面这个可爱的图标很多人一定很熟悉。不过今天想尝鲜新的工具 Visual Studio Code 来搭建C/C++开发环境,感兴趣的朋友一起看看吧
    2021-09-09
  • C++ vector在多线程操作中出现内存错误问题及解决

    C++ vector在多线程操作中出现内存错误问题及解决

    这篇文章主要介绍了C++ vector在多线程操作中出现内存错误问题及解决方案,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 讲解C语言编程中指针赋值的入门实例

    讲解C语言编程中指针赋值的入门实例

    这篇文章主要介绍了讲解C语言编程中指针赋值的入门实例,通过const int i与int *const pi这样两个例子来分析指针的赋值和地址指向,需要的朋友可以参考下
    2015-12-12
  • C++ 动态数组模版类Vector实例详解

    C++ 动态数组模版类Vector实例详解

    这篇文章主要为大家详细介绍了C++动态数组模版类Vector实例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • Qt实现两个独立窗口的信号通信

    Qt实现两个独立窗口的信号通信

    这篇文章主要为大家详细介绍了Qt实现两个独立窗口的信号通信,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-01-01
  • C++实现简易选课系统代码分享

    C++实现简易选课系统代码分享

    这篇文章主要介绍了C++实现简易选课系统及实现代码的分享,具有一定的参考价值,需要的小伙伴可以参考一下,希望对你有所帮助
    2022-01-01
  • C++中的作用域案例详解

    C++中的作用域案例详解

    作用域规定了标识符在代码中的可见性和可访问性,全局作用域中的标识符可以在整个程序中使用,局部作用域中的标识符只能在其所在的代码块中使用,而命名空间作用域提供了一种组织和封装代码的方式,以避免命名冲突,这篇文章主要介绍了C++中的作用域,需要的朋友可以参考下
    2024-02-02
  • 由static_cast和dynamic_cast到C++对象占用内存的全面分析

    由static_cast和dynamic_cast到C++对象占用内存的全面分析

    下面小编就为大家带来一篇由static_cast和dynamic_cast到C++对象占用内存的全面分析。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-01-01

最新评论