MDGSF Software Engineer

[C/C++] glog使用

2016-07-07

#define GLOG_NO_ABBREVIATED_SEVERITIES
/*
 * INFO = GLOG_INFO,
 * WARNING = GLOG_WARNING,
 * ERROR = GLOG_ERROR,
 * FATAL = GLOG_FATAL;
 */

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

using namespace std;

void vTestLog();

int main(int argc, char * argv[])
{
    printf("glog demo\n");


    // GLog生成的文件名格式是[文件名].[计算机名].[Windows用户名].[log].[等级].[年月日时分秒].[PID]
    // Initialize Google's logging library,同时设置文件名
    google::InitGoogleLogging(argv[0]);

    google::LogToStderr();//只输出到标准错误输出,也就是不保存到文件中。
    google::SetStderrLogging(google::GLOG_INFO); //设置级别高于 google::INFO 的日志同时输出到屏幕
    FLAGS_log_dir = "c:\\GLogFiles"; //设置保存log的目录
    FLAGS_colorlogtostderr = true; //设置输出到屏幕的日志显示相应颜色
    FLAGS_logbufsecs = 0; //缓冲日志输出,默认为30秒,此处改为立即输出
    FLAGS_max_log_size = 100; //最大日志大小为 100MB
    FLAGS_stop_logging_if_full_disk = true; //当磁盘被写满时,停止日志输出

    vTestLog();

    google::ShutdownGoogleLogging();



    getchar();getchar();
    return 0;
}

void vTestLog()
{
    LOG(INFO) << "google INFO log" << endl;
    LOG(WARNING) << "google WARNING log" << endl;
    LOG(ERROR) << "google ERROR log" << endl;  //ERROR级别的log默认会同时输出到console和文件
    //LOG(FATAL) << "google FATAL log" << endl;  //FATAL级别的log一旦执行到了,程序就会自动推出

    int i;
    for (i = 0; i < 10; i++) {
        //当条件满足时输出日志
        LOG_IF(INFO, i>7) << "i = " << i;
    }

    for (i = 0; i < 10; i++) {
        //google::COUNTER 记录该语句被执行次数,
        //从1开始,在第一次运行输出日志之后,每隔 3 次再输出一次日志信息
        LOG_EVERY_N(INFO, 3) << "Got the" << google::COUNTER << "th i=" << i;
    }

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

    //LOG(ERROR) << "LOG";
    //VLOG(3) << "VLOG";
    //DLOG(ERROR) << "DLOG";
    //DVLOG(3) << "DVLOG";
    //SYSLOG(ERROR) <<"SYSLOG";
    //PLOG(ERROR) <<"PLOG";
    //RAW_LOG(ERROR, "RAW_LOG");
}

weixingongzhonghao

下一篇 [GDB] gdb基础

Comments

Content