欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

glog的使用

程序员文章站 2022-03-20 13:37:40
...

请先设置环境变量

export LOGPATH=/home/***/Log

下面是glog的一些封装:

 

//MyLog.h
#ifndef __MY_LOG_H_
#define __MY_LOG_H_
//GLog
#include <glog/logging.h>
#include <string>

//Glog
#define LOG_INFO LOG(INFO)
#define LOG_WARN LOG(WARNING)
#define LOG_ERROR LOG(ERROR)
#define LOG_FATAL LOG(FATAL)

static void INITIALIZE_LOG(char * filename)
{
	google::InitGoogleLogging(filename);

	FLAGS_logtostderr = 0;	//是否打印到控制台
	FLAGS_alsologtostderr=0;	//打印到日志同时是否打印到控制台
	FLAGS_stderrthreshold=google::FATAL;	//需要打印到控制台的日志级别
	FLAGS_minloglevel=0;	//
	string t_strLogPath = getenv("LOGPATH");	
	FLAGS_log_dir = t_strLogPath;

	string t_strInfoName, t_strWarningName, t_strErrorName, t_strFatalName;
	#ifdef FLAGS_INFO //info以上单日志
		t_strInfoName=t_strInfoName+FLAGS_log_dir+"/"+filename+".info.";
	#elif FLAGS_WARNING //waring以上单日志
		t_strWarningName=t_strWarningName+FLAGS_log_dir+"/"+filename+".warning.";
	#elif FLAGS_ERROR //error以上单日志
		t_strErrorName=t_strErrorName+FLAGS_log_dir+"/"+filename+".error.";
	#elif FLAGS_FATAL //fatal以上单日志
		t_strFatalName=t_strFatalName+FLAGS_log_dir+"/"+filename+".fatal.";
	#elif FLAGS_ALL //各级别分别日志
		t_strInfoName=t_strInfoName+FLAGS_log_dir+"/"+filename+".info.";
		t_strWarningName=t_strWarningName+FLAGS_log_dir+"/"+filename+".warning.";
		t_strErrorName=t_strErrorName+FLAGS_log_dir+"/"+filename+".error.";
		t_strFatalName=t_strFatalName+FLAGS_log_dir+"/"+filename+".fatal.";
	#else //默认INFO单日志
		t_strInfoName=t_strInfoName+FLAGS_log_dir+"/"+filename+".info.";
	#endif 

	google::SetLogDestination(google::INFO, t_strInfoName.c_str());
	google::SetLogDestination(google::WARNING, t_strWarningName.c_str());
	google::SetLogDestination(google::ERROR, t_strErrorName.c_str());
	google::SetLogDestination(google::FATAL, t_strFatalName.c_str());
}

#endif

 

上述头文件使用例子:

 

#include "../../stdafx.h"

#define FLAGS_INFO
#include "../../MyLog.h"


int main(int argc, char* argv[]) 
{
    // Initialize Google's logging library.
	INITIALIZE_LOG(argv[0]);
	
	LOG_INFO << "Hello1, Glog!";
	LOG_ERROR << "Hello2, Glog!";
	//LOG_FATAL << "Hello3, Glog!";
}

 

编译:

 g++ TestGlog.cpp -omain -lglog