GLog学习记录

GLog学习记录

1. 严重程度

GLog允许你制定消息的严重程度,一共有四个级别:INFO,WARNING,ERROR,FATAL。记录FATAL消息会终止程序(在记录消息之后),在GLog记录的消息的开头以I、W、E、F来表示信息的严重级别。

2. 日志格式

默认情况下日志会写入本地/tmp/文件夹中,文件名格式
<program name>.<host name>.<user name>.log.<Severity level>.<date>-<time>.<pid>;

默认情况下,GLog还会将ERROR和FATAL错误记录到stderr消息中(会在终端中打印出来);

在终端打印出来的消息格式
<Serverity level><number> <time>.<number> <pid><file>:<line number> <message>

示例程序及编译:

#include <glog/logging.h>
int main(int argc, char** argv)
{
    google::InitGoogleLogging(argv[0]);  //初始化GLog库
    LOG(ERROR)<<"There is error !!!";
    return 0;
}
//用g++进行编译 -lglog -lgflags 为两个依赖库
g++ glog_test.cpp -o glog_test -lglog -lgflags
./glog_test

终端打印:
在这里插入图片描述
同样可以在本地/tmp/文件夹下查看日志内容

3.设置

  • 设置存放Log的目录

如果我们想指定log文件输出位置,那么我们可以对GLog设置一下标志(FLAGS_log_dir);

#include <glog/logging.h>
int main(int argc, char** argv)
{
    google::InitGoogleLogging(argv[0]);  //初始化GLog库
    FLAGS_log_dir = "./";    //将日志文件输出到当前文件夹下
    LOG(ERROR)<<"There is error !!!";
    return 0;
}

在当前文件夹就会产生日志文件,日志文件有四个基本文件。

  • 设置只在终端显示Log

当我们只想将日志信息输出到stderr,在终端中显示的时候,我们可以设置(FLAGS_logtostderr);

设置 FLAGS_logtostderr = 1 将使日志信息记录到stderr而不保存到本地日志文件中,即使你设置了FLAGS_log_dir;

此次日志信息显示包含所有级别,即INFO、WARNING、ERROR、FATAL;即使采用下面方式,设置记录到终端的log级别,也会被忽略。

  • 设置记录到本地,并且在终端显示

设置 FLAGS_alsologtostderr = 1 将实现日志信息在终端显示,此次日志信息显示包含所有级别,即INFO、WARNING、ERROR、FATAL;

即使采用下面方式,设置记录到终端的log级别,也会被忽略。

  • 设置记录到终端的log级别

这仅仅是对于记录Log到终端中的设置;

当我们需要将WARNING等级的log记录到终端时,我们可以设置FLAGS_stderrthreshold=1 那么WARNING以及更高级别的Log会记录到终端中,默认情况下只显示ERROR以及更高级别;

INFO:0,WARNING:1,ERROR:2,FATAL:3

4. 条件记录

我们可以使用LOG_IF()来达到有条件输出日志的目的;

#include <glog/logging.h>
int main(int argc, char **argv) {
    google::InitGoogleLogging(argv[0]);      // 初始化GLog库
    FLAGS_logtostderr = 1;                                //设置只在终端打印,即终端打印出全部信息,则下面lod_dir与stderrthreshold设置可以忽略。
    FLAGS_log_dir = "./Log";
    FLAGS_stderrthreshold = 1;
    FLAGS_colorlogtostderr = 1;                     //终端打印颜色设置


    LOG(INFO) << "There is info";
    LOG(WARNING) << "There is warning";
    LOG(ERROR) << "There is error !!!";
    LOG(WARNING) << "There is another warning";

    for(int i=0; i<20; i++)
    {
            LOG_IF(INFO, i>15)<<i<<">15";         //当i>15时,记录Log
    }

    return 0;
}

终端显示的Log:

在这里插入图片描述

参考链接

https://blog.csdn.net/weixin_30954265/article/details/95081357

https://blog.csdn.net/qq_34347375/article/details/86629421

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
CMake是一个跨平台的开源构建工具,用于管理软件构建过程中的编译、链接和安装等操作。Glog是谷歌开源的C++日志库,用于记录程序运行时的输出信息。在CMake工程中使用Glog可以通过以下几个步骤来配置和使用: 1. 在CMakeLists.txt中配置Glog:引用中的代码段展示了在CMakeLists.txt文件中配置Glog的语句。首先使用`find_package(Glog REQUIRED)`来找到Glog库,然后使用`include_directories(BEFORE ${GLOG_INCLUDE_DIRS})`将Glog库的头文件目录添加到编译器的搜索路径中。 2. 在main函数中配置Glog:引用中的代码段展示了在main函数中配置Glog的语句。首先在文件中添加`#include <glog/logging.h>`来包含Glog的头文件。然后在main函数体中使用`google::InitGoogleLogging(argv)`来初始化Glog,其中`argv`是可执行文件的名称。接下来,使用`google::SetLogDestination()`函数设置不同级别的日志信息的输出路径,可以根据需要设置不同级别的日志信息的存储路径和文件名前缀。最后,使用`LOG(INFO)`宏来输出日志信息。 3. 在其他文件中使用Glog:可以在其他文件中通过包含`<glog/logging.h>`头文件来使用Glog提供的日志功能。 综上所述,以上是在CMake工程中使用Glog的基本配置和使用方法。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [Cmake中的Glog用法浅析](https://blog.csdn.net/handsome_for_kill/article/details/69808446)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v93^chatsearchT3_2"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值