google的日志glog安装及使用

1.glog

glog是google出的一个轻量级的c++日志库

2.下载及编译

下载或克隆库,我选择的是V0.6.0版本:

github.com/goolge/glog/releases/tag/v0.6.0

我用cmake编译(参考:github.com/google/glog#cmake)

按照说明步骤进行编译即可

问题一

在执行  cmake --build build命令后,出现如下错误:

undefined reference to `typeinfo for testing::Test

解决方法: 打开CmakeLists.txt, 把ON修改为OFF即可

option (WITH_GTEST "Use Google Test" OFF)

参考:

从glog-0.6.0 undefined reference to `typeinfo for testing::Test‘-CSDN博客

继续上面的步骤又出现如下错误

问题二

fatal error: glog/platform.h: 没有那个文件或目录

我发现我生成的build路径下的glog文件夹下只有5个头文件,缺少log_severity.h和platform.h两个头文件

解决方法: 在src下的glog下把那两个头文件拷贝到你的工程目录下,即可。

参考:

问题三:

fatal error: glog/logging.h :  没有那个文件或目录

解决方法:

    sudo apt-get install libgflags-dev

参考:fatal error: gflags/gflags.h: No such file or directory-CSDN博客

3.测试demo

参考:glog 测试与使用-CSDN博客

CMakeLists.txt

cmake_minimum_required(VERSION 3.0 FATAL_ERROR)

project(test_glogs)

SET(CMAKE_BUILD_TYPE Debug)

#glog

include_directories(./thirdparty)

link_directories(./thirdparty/glog/lib)

add_executable(main demo_glog/main.cpp)

target_link_libraries(main glog)

set_property(TARGET main PROPERTY CXX_STANDARD 11)

main.cpp

#include <iostream>
#include <glog/logging.h>
 
int main(int argc, char** argv)
{
 
//    FLAGS_logtostderr = 1; // 将使日志信息记录到stderr而不保存到本地日志文件中,即使你设置了FLAGS_log_dir;
 
    FLAGS_alsologtostderr = true; //除了日志文件之外是否需要标准输出
 
    google::SetLogDestination(google::GLOG_WARNING, "./log/log_warning_"); //设置 google::WARNING 级别的日志存储路径和文件名前缀
    google::SetLogDestination(google::GLOG_INFO, "./log/log_info_"); //设置 google::INFO 级别的日志存储路径和文件名前缀
 
    google::InitGoogleLogging("test_2022");//初始化
//    google::SetLogDestination(google::GLOG_INFO,"./log/aTestInfo");//设置日志文件路径,默认+时间作为生成的日志文件名
 
 
    LOG(INFO) << "info test";  //输出一个Info日志
 
 
    //有条件地中止程序
//    int a1 = 5;
//    CHECK(a1 == 4) << "a1 != 4,fail!"; //a1 != 4的时候输出后面的打印,然后中止程序退出
 
    int a2 = 3;
    int a3 = 3;
    CHECK_EQ(a2,a3)<<"---==";//a2==a3的时候才继续运行  当a2!=a3的时候输出后面的打印退出中止运行
 
 
 
    LOG(WARNING) << "warning test";  //输出一个Warning日志
    LOG(ERROR) << "error test";  //输出一个Error日志
//    LOG(FATAL) << "fatal test";  //输出一个Fatal日志,这是最严重的日志并且输出之后会中止程序
 
    std::cout<<"-------end-----"<<std::endl;
    return 0;
}

工程目录结构:

build下创建log目录

mkdir build

cd build

cmake ..

make

./main

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值