GLOG中的(Verbose Logging)VLOG的使用

gflag使用小案例:

#include <iostream>
#include <vector>
#include <map>
#include <set>
#include <list>
#include <deque>
#include <stack>
#include <queue>
#include <algorithm>
#include <unordered_map>
#include <unordered_set>
#include "glog/logging.h"
#include <gflags/gflags.h>

#include "helloWorld.h"

using namespace std;

set<int> person::intrest;
void testGlog(){
    google::InitGoogleLogging("daqing");    //初始化一个log
    FLAGS_logtostderr = 1;  //输出到控制台

    LOG(INFO) << "info test";  //输出一个Info日志
    LOG(WARNING) << "warning test";  //输出一个Warning日志
    LOG(ERROR) << "error test";  //输出一个Error日志
    // LOG(FATAL) << "fatal test";  //输出一个Fatal日志,这是最严重的日志并且输出之后会中止程序,暂时注掉
    LOG(INFO)<<"info test lastone";
    VLOG(1) << "I'm printed when you run the program with --v=1 or higher";
    VLOG(2) << "I'm printed when you run the program with --v=2 or higher";
    VLOG(5) << "I'm printed when you run the program with --v=5 or higher";
    google::ShutdownGoogleLogging();    //不用log的时候应该释放掉,不然会内存溢出
}
int main(int argc, char* argv[]) {
  testGlog();
  return 0;
}

运行结果:

[root@second-1492d9693 ClionProject]# make
Scanning dependencies of target main
[100%] Building CXX object CMakeFiles/main.dir/helloWorld.cpp.o
Linking CXX executable main
[100%] Built target main
[root@second-1492d9693 ClionProject]# GLOG_v=5 ./main 
I0818 16:21:48.238721 55864 helloWorld.cpp:24] info test
W0818 16:21:48.238860 55864 helloWorld.cpp:25] warning test
E0818 16:21:48.238867 55864 helloWorld.cpp:26] error test
I0818 16:21:48.238871 55864 helloWorld.cpp:28] info test lastone
I0818 16:21:48.238880 55864 helloWorld.cpp:29] I'm printed when you run the program with --v=1 or higher
I0818 16:21:48.238884 55864 helloWorld.cpp:30] I'm printed when you run the program with --v=2 or higher
I0818 16:21:48.238889 55864 helloWorld.cpp:31] I'm printed when you run the program with --v=5 or higher
[root@second-1492d9693 ClionProject]# GLOG_v=3 ./main 
I0818 16:21:52.806113 55936 helloWorld.cpp:24] info test
W0818 16:21:52.806288 55936 helloWorld.cpp:25] warning test
E0818 16:21:52.806296 55936 helloWorld.cpp:26] error test
I0818 16:21:52.806303 55936 helloWorld.cpp:28] info test lastone
I0818 16:21:52.806314 55936 helloWorld.cpp:29] I'm printed when you run the program with --v=1 or higher
I0818 16:21:52.806320 55936 helloWorld.cpp:30] I'm printed when you run the program with --v=2 or higher

可以看到通过GLOG_v=num就可以根据数字控制打印的log,当然还有更加复杂的设置可以通过gflag来进行设置。可以参考:glog#verbose-logging
还可以通过设置其他的设置:glog#setting-flags来对glog进行配置。

  • 1
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
### 回答1: <glog/logging.h>是Google的开源C ++日志记录库,用于在C ++程序实现灵活且高效的日志记录功能。它提供了一个易于使用的接口,可以将各种日志消息记录到控制台、文件或其他输出目标。 <glog/logging.h>库主要由以下几个组件组成: 1. Logger(日志记录器):提供了不同级别的日志记录功能,例如INFO、WARNING、ERROR和FATAL。可以通过使用Logger对象的接口来记录不同级别的日志消息。 2. LogSink(日志汇):定义了将日志消息写入目标的接口。可以通过创建和注册不同类型的LogSink对象来将日志消息输出到不同的目标,例如控制台、文件或远程服务器。 3. LogMessage(日志消息):包含了要记录的日志消息的详细信息,例如发生日志记录的文件名、行号等。可以通过LogMessage提供的接口来记录日志消息。 4. Flag(标志):用于启用或禁用特定的日志记录功能。可以通过设置不同的Flag来控制日志记录的级别、输出目标等。 通过在C ++代码包含<glog/logging.h>头文件,并使用的接口,开发人员可以方便地实现日志记录功能。此外,该库还提供了一些额外的功能,例如支持日志消息的格式化、日志消息的过滤和日志的分级统计等。 总而言之,<glog/logging.h>是一个强大且易于使用的C ++日志记录库,提供了丰富的功能和灵活的配置选项,可以帮助开发人员更好地追踪和调试程序的问题。 ### 回答2: <glog/logging.h> 是一个开源的 C++ 日志库。它提供了一套灵活、功能丰富且易于使用的日志记录工具,用于帮助开发人员在程序方便地记录和追踪各种信息。 使用<glog/logging.h>,开发人员可以通过简单的API调用来记录各种消息,包括调试信息、警告、错误和临时性信息。该库支持不同级别的日志,包括 INFO、WARNING、ERROR、FATAL,开发人员可以根据不同的需求来选择适当的日志级别。 此外,<glog/logging.h> 还提供了一些其他功能,如日志文件的自动分割、多线程支持、日志信息的颜色标记、日志信息到标准输出的同时写入到磁盘等。这些功能使得开发人员可以更好地分析和排查程序的问题。 另外,<glog/logging.h> 是跨平台的,可以在多个操作系统上运行,如Linux、Windows和MacOS。它被广泛应用于各种规模的软件项目,包括大型分布式系统、Web 服务器、数据库等。 总而言之,<glog/logging.h> 是一个功能强大且易于使用C++日志记录库,可以帮助开发人员在程序方便地记录各种信息,并提供了许多有用的功能来方便开发人员分析和排查问题。无论是开发大型软件还是小型项目,都可以考虑使用这个库来提高开发效率和日志记录的质量。 ### 回答3: <glog/logging.h> 是一个开源的 C++ 日志库,由 Google 开发并维护。它提供了一种简单且高效的方式来在代码记录日志信息。 使用 <glog/logging.h>,开发者可以通过调用相应的函数将各种级别的日志信息输出到控制台或文件。这些日志级别包括 DEBUG、INFO、WARNING、ERROR 和 FATAL,可以根据需要选择不同的级别来记录日志,以方便在开发和调试过程进行有效的日志跟踪和错误定位。 <glog/logging.h> 的优势在于其高性能和灵活的配置选项。它通过多线程和缓冲技术,能够在高并发的情况下保持较低的性能开销。此外,开发者还可以通过配置文件或命令行参数来调整日志记录的行为,包括输出格式、日志文件路径、日志级别等。这使得 <glog/logging.h> 能够灵活地适应各种不同的应用场景和需求。 另外,<glog/logging.h> 还提供了一些其他功能,如栈追踪信息的记录、日志的自动滚动和分割、对日志进行查找和过滤等。这些功能进一步增强了日志的可读性和可管理性,有助于快速定位和排查问题。 总之,<glog/logging.h> 是一个功能强大、易用且高性能的 C++ 日志库。它通过简化日志记录的过程和提供丰富的配置选项,极大地方便了开发人员进行日志管理和问题排查,是很多 C++ 项目常用的工具之一。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值