glog初始化和反初始化处理

//glog_common.h 自定义头文件,包装glog初始化和反初始化操作
#pragma once
#include <direct.h>
#define GLOG_NO_ABBREVIATED_SEVERITIES
#define GOOGLE_GLOG_DLL_DECL
#include "glog/logging.h"
#include "glog/log_severity.h"

typedef struct GLOG_MYAUTO
{
    GLOG_MYAUTO()
    {
        _mkdir("log");
        FLAGS_log_dir = "log\";
        google::InitGoogleLogging("log\");
        google::SetLogDestination(google::GLOG_INFO, "log\");
        google::SetLogFilenameExtension("INFO");
        FLAGS_max_log_size = 1024;  // Set max log file size
        FLAGS_stop_logging_if_full_disk = true;  // If disk is full    
    }

    ~GLOG_MYAUTO()
    {
        google::ShutdownGoogleLogging();
    }

}GLOG_MYAUTO;

static GLOG_MYAUTO g_glog_user;

//用法示例
//char str[20] = "hello log!";
//LOG(INFO) << str;
////输出一个Info日志
//LOG(INFO) << "info test" << "hello log!"; 
////输出一个Warning日志
//LOG(WARNING) << "warning test"; 
////输出一个Error日志
//LOG(ERROR) << "error test";  

通过静态变量完成glog相关的初始化和反初始化操作,使用时只需 包含glog_common.h

// glog_test.cpp : 定义控制台应用程序的入口点。

#include "stdafx.h"
#include <string>
#include "glog_common.h"


int main(int argc, char* argv[])
{
    char str[20] = "hello log!";
    LOG(INFO) << str;
    LOG(INFO) << "info test" << "hello log!";  //输出一个Info日志
    LOG(WARNING) << "warning test";  //输出一个Warning日志
    LOG(ERROR) << "error test";  //输出一个Error日志

    return 0;
}
原文地址:https://www.cnblogs.com/SwiftChocolate/p/14021980.html