glog --- C++日志库

日志库glog

实现应用程序级日志记录的C++库。
项目地址: https://github.com/google/glog

glog安装
  • glog-0.3.3.tar.gz 下载: https://download.csdn.net/download/first_bug/85713531
  • 编译安装
    ./configure
    make 
    make install
    

    默认安装在usr/local/lib/下
    头文件在/usr/local/include/glog/下

  • 可能的报错
    在这里插入图片描述
    1. 将src/demangle.cc 170行的 if(str == ‘\0’) 改为 if(str[i] == ‘\0’)
    2. 将src/demangle.cc 226行的 if (state->mangle_cur == ‘\0’) 改为 if (*(state->mangle_cur) == ‘\0’)
  • 成功安装
    在这里插入图片描述
简单使用
默认输出
#include<iostream>
#include<glog/logging.h>

int main(int argc,char*argv[]){
	google::InitGoogleLogging(argv[0]); //init glog
	LOG(INFO)<<"HELLO,WORLD";
	google::ShutdownGoogleLogging();
	return 0;
}

编译

g++ glogtest.cpp -o glogtest -lglog

输出文件位置为/tmp 目录一下

仅输出到标准输出
#include<iostream>
#include<glog/logging.h>

int main(int argc,char*argv[]){
	/
	FLAGS_logtostderr = true; // log turn to stderr instead of file
	
	google::InitGoogleLogging(argv[0]); //init glog
	LOG(INFO)<<"HELLO,WORLD";
	google::ShutdownGoogleLogging();
	return 0;
}

在这里插入图片描述

输出设置
//设置日志消息是否转到标准输出而不是日志文件
FLAGS_logtostderr = true;  
//设置日志消息除了日志文件之外是否去标准输出
FLAGS_alsologtostderr = true;  
输出目录设置
//INFO级别的日志都存放到logs目录下且前缀为INFO_
google::SetLogDestination(google::GLOG_INFO, "./logs/INFO_");
//WARNING级别的日志都存放到logs目录下且前缀为WARNING_
google::SetLogDestination(google::GLOG_WARNING, "./logs/WARNING_");
//ERROR级别的日志都存放到logs目录下且前缀为ERROR_
google::SetLogDestination(google::GLOG_ERROR, "./logs/ERROR_");	
//FATAL级别的日志都存放到logs目录下且前缀为FATAL_
google::SetLogDestination(google::GLOG_FATAL, "./logs/FATAL_");	

例子

#include<iostream>
#include<glog/logging.h>

int main(int argc,char*argv[]){
	google::InitGoogleLogging(argv[0]); //init glog
	google::SetLogDestination(google::GLOG_INFO,"./logs/INFO_");
	LOG(INFO)<<"HELLO,WORLD";
	google::ShutdownGoogleLogging();
	return 0;
}

在这里插入图片描述

错误类型

glog有四个错误级别

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

对应的输出方式

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

当条件满足时输出日志

LOG_IF(INFO, CONDITION) << "got the condition";  
#include<iostream>
#include<glog/logging.h>

int main(int argc,char*argv[]){
	FLAGS_logtostderr = true;
	google::InitGoogleLogging(argv[0]); //init glog
	google::SetLogDestination(google::GLOG_INFO,"./logs/INFO_");
	LOG_IF(INFO,5>10) << "Hello";
	LOG_IF(INFO,5<10) << "WORLD";
	google::ShutdownGoogleLogging();
	return 0;
}

在这里插入图片描述

  • 4
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

暴风雨中的白杨

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值