glog使用

粗略使用

main.cpp

#ifndef GLOG_NO_ABBREVIATED_SEVERITIES
#define GLOG_NO_ABBREVIATED_SEVERITIES // 如果不加这个宏定义代码就会报错
#endif
#include <glog/logging.h>

#pragma comment(lib, "glog.lib")

int main(int argc, char* argv[])
{

	// 常用参数
	// 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;  //设置是否在磁盘已满时避免日志记录到磁盘

	// 日志类型
	// LOG    //内置日志
	// VLOG    //自定义日志
	// DLOG    //DEBUG模式可输出的日志
	// DVLOG    //DEBUG模式可输出的自定义日志
	// SYSLOG    //系统日志,同时通过 syslog() 函数写入到 /var/log/message 文件
	// PLOG    //perror风格日志,设置errno状态并输出到日志中
	// RAW_LOG        //线程安全的日志,需要#include <glog/raw_logging.h>

	// 使用glog之前必须先初始化库,仅需执行一次,括号内为程序名
	google::InitGoogleLogging("test");
	FLAGS_alsologtostderr = true;//是否将日志输出到文件和stderr
	FLAGS_colorlogtostderr = true;//是否启用不同颜色显示

	//INFO级别的日志都存放到logs目录下且前缀为INFO_
	google::SetLogDestination(google::GLOG_INFO, "./INFO_");
	//WARNING级别的日志都存放到logs目录下且前缀为WARNING_
	google::SetLogDestination(google::GLOG_WARNING, "./WARNING_");
	//ERROR级别的日志都存放到logs目录下且前缀为ERROR_
	google::SetLogDestination(google::GLOG_ERROR, "./ERROR_");
	//FATAL级别的日志都存放到logs目录下且前缀为FATAL_	
	google::SetLogDestination(google::GLOG_FATAL, "./FATAL_");	

	LOG(INFO) << "Hello,GLOG!";// 使用 INFO 进行打印
	LOG(WARNING) << "warning";// warning 情况
	LOG(ERROR) << "error";// error情况
	// LOG(FATAL) << "fatak";// 报错

	// 当条件满足时输出日志
	int num = 9;
	LOG_IF(INFO, num > 10) << " < 10";  
	num = 11;
	LOG_IF(INFO, num > 10) << " > 10"; 

	// google::COUNTER 记录该语句被执行次数,从1开始,在第一次运行输出日志之后,
	// 每隔 10 次再输出一次日志信息
	for(int i = 0; i < 10; i++){
		LOG_EVERY_N(INFO, 10) << "Got the " << google::COUNTER << "th cookie"; 
	}
	 
	// 先每隔 10 次去判断条件是否满足,如果是则输出日志;
	// 不是当满足某条件的情况下,每隔 10 次输出一次日志信息
	int size = 0;
	for(int i = 0; i < 10; i++){
		size += 512;
		LOG_IF_EVERY_N(INFO, (size > 1024), 10) << "Got the " << google::COUNTER << "th big cookie";  
	}

	// 当此语句执行的前 20 次都输出日志,然后不再输出
	for(int i = 0; i < 10; i++){
		LOG_FIRST_N(INFO, 2) << "Got the " << google::COUNTER << "th cookie";  
	}
	return 0;
}


CMakeLists.txt

cmake_minimum_required(VERSION 2.8.3)
project(glog)

if(NOT CMAKE_BUILD_TYPE)
  set(CMAKE_BUILD_TYPE "Release")
endif()

add_compile_options(-std=c++11) 
add_definitions(-w)

find_package(glog REQUIRED)

add_executable(main main.cpp)
target_link_libraries(main  glog::glog)

结果

I20220728 19:37:42.388937 245433 main.cpp:27] Hello,GLOG!   
W20220728 19:37:42.389828 245433 main.cpp:28] warning  手动黄色
E20220728 19:37:42.390450 245433 main.cpp:29] error    手动红色
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值