• GLOG使用Demo


    GLOG使用Demo

    GLOG是Google开源的一个精简的日志系统,博主简单学习了一下并记录常见用法,以备日常查询

    一、安装

    照例是编译安装,不过没有使用cmake

    git clone https://github.com/google/glog.git
    cd glog
    ./autogen.sh
    ./configure
    make
    sudo make install
    

    二、Demo

    # CMakeLists.txt
    cmake_minimum_required (VERSION 2.8.11)
    project (proj)
    
    find_package (glog)
    
    add_executable (demo01 1.cc)
    target_link_libraries (demo01 glog)
    
    // 1.cpp
    #include <glog/logging.h>
    int main(int argc, char *argv[])
    {
        google::InitGoogleLogging(argv[0]);
        google::SetLogDestination(google::INFO, "log/"); // 把日志同时记录文件,最低级别为INFO
    
        // 通过GFLAGS来设置参数,更多选项可以在logging.cc里面查询
        // 日志等级分为INFO, WARNING, ERROR, FATAL,如果是FATAL级别这直接运行报错
        FLAGS_stderrthreshold = google::WARNING;
        FLAGS_colorlogtostderr = true;
    
        LOG(WARNING) << "Hello GLOG";
        // 条件输出
        LOG_IF(INFO, 20 > 10) << "20 > 10";
        // 频率输出,本质上是通过google::COUNTER这个计数机实现的
        for (int i = 0; i < 10; i++)
        {
            LOG_EVERY_N(ERROR, 3) << "每隔3次输出一次 " << i;
            LOG_FIRST_N(ERROR, 2) << "前两次输出 " << i;
            LOG_IF_EVERY_N(WARNING, 1 < 2, 2) << "条件输出+频率" << google::COUNTER;
        }
        google::ShutdownGoogleLogging();
    }
    

    三、编译运行

    mkdir build
    cd build
    mkdir log # 存放日志的目录
    cmake ..
    make
    ./demo01
    

    四、运行结果

    命令行结果(事实上不同等级的日志会有不同的颜色)

    W1110 12:00:49.353030 3474011072 1.cc:13] Hello GLOG
    E1110 12:00:49.355512 3474011072 1.cc:19] 每隔3次输出一次 0
    E1110 12:00:49.355850 3474011072 1.cc:20] 前两次输出 0
    W1110 12:00:49.355880 3474011072 1.cc:21] 条件输出+频率1
    E1110 12:00:49.355916 3474011072 1.cc:20] 前两次输出 1
    W1110 12:00:49.355944 3474011072 1.cc:21] 条件输出+频率3
    E1110 12:00:49.355969 3474011072 1.cc:19] 每隔3次输出一次 3
    W1110 12:00:49.356000 3474011072 1.cc:21] 条件输出+频率5
    E1110 12:00:49.356024 3474011072 1.cc:19] 每隔3次输出一次 6
    W1110 12:00:49.356053 3474011072 1.cc:21] 条件输出+频率7
    W1110 12:00:49.356077 3474011072 1.cc:21] 条件输出+频率9
    E1110 12:00:49.356101 3474011072 1.cc:19] 每隔3次输出一次 9
    

    同时在log目录下会有日志文件

    ➜  build tree log/
    log/
    ├── 20181110-115213.48624
    ├── 20181110-115249.48650
    ├── 20181110-120049.48867
    └── demo01.INFO -> 20181110-120049.48867  # demo01.INFO会软链到最新的日志
    

    五、小结

    现在日益感觉到日志的重要性,感觉GLOG设计的非常精妙,代码也比较明了,但官网的文档比较简单,更多功能可以直接读源码

  • 相关阅读:
    android git问题File not found: git.exe
    asp.net 连接数据库的问题总结
    asp.net记账本
    asp.net对数据库增删改操作
    asp.net 连接数据库操作
    第九、十周周记
    作业四-兴趣问题清单
    价值观作业
    第七周周记
    第三次作业问卷调查
  • 原文地址:https://www.cnblogs.com/fanghao/p/9938879.html
Copyright © 2020-2023  润新知