google的glog日志管理

在做C/C++项目的时候,开发阶段,日志信息越详细越好,出问题一目了然,当然,所占用的空间自然越多。如果项目上线,没有日志的控制管理,后续的问题会很麻烦。比如:日志量大,磁盘空间不够用,也很难选出有用的日志。
所以找了一些相关的开源的日志管理代码,最终选择了google的glog,为什么?因为觉得它简单实用,很容易上手,此处贴的示例代码,也是前辈们贴出来的,我只不过是稍加整理,弄成自己喜欢的风格罢了,并加入了一些简单的注释:

/***************************************
2017年 06月 30日 星期五 16:31:37 CST
*主要测试使用glog日志管理
*开源项目,源代码路径:
*   https://github.com/google/glog.git
*By TopsLuo
*****************************************/
#include <iostream>
#include <stdlib.h>
#include "glog/logging.h"
using namespace std;

enum level 
{
    INFO=0,
    WARINIG=1,
    ERROR=2,
    FATAL=3
};


void test_glog()
{
    for(int i = 1; i < 101; i++)
    {
        //满足i==100才会打印
        LOG_IF(INFO,i==100)<<"LOG_IF(INFO,I==100),google::COUNTER=" << google::COUNTER << " i=" << i << endl;

        //每隔10次打印一次,对于刷屏的日志控制很好
        LOG_EVERY_N(INFO,10)<<"LOG_EVERY_N(INFO,10) google::COUNTER=" << google::COUNTER << " i=" << i;

        //满足i > 50的条件后,每隔10次打印一次,对于刷屏的日志控制很好
        LOG_IF_EVERY_N(WARNING,(i>50),10) << "LOG_IF_ERVER_N(INFO,(I>50),10) google::COUNTER="<<google::COUNTER<< " i=" << i;

        //只打印前5次
        LOG_FIRST_N(ERROR,5) << "LOG_FIRST_N(error,5) google::COUNTER=" << " i=" << i;

        //每次都打印
        LOG(ERROR) << "TEST BY TOPSLUO" << endl;
    }
}


int main(int argc, char **argv)
{
    google::InitGoogleLogging(argv[0]);
    FLAGS_stderrthreshold=google::INFO;
    FLAGS_colorlogtostderr=true;
    google::SetStderrLogging(INFO);//设置级别高于google::INFO的日志同时输出到屏幕
    google::SetLogDestination(google::ERROR,"./log/error_");//设置google::ERROR级别的日志存储路径和文件名前缀
    google::SetLogDestination(google::WARNING,"./log/warning_");
    google::SetLogDestination(google::INFO,"./log/info_");
    FLAGS_logbufsecs = 0;//缓冲日志输出,默认为30秒,此处改为立刻
    FLAGS_max_log_size = 100;//最大日志大小为100M
    FLAGS_stop_logging_if_full_disk = true;//当磁盘被写满时,停止日志输出
    google::SetLogFilenameExtension("91_");//设置文件名扩展,如平台,或者其它需要区分的信息
    google::InstallFailureSignalHandler();//捕捉core dumped
    //google::InstallFailureWriter(&SignalHandle);//默认捕捉SIGSEGV信息输出会输出到sdtdrr

    test_glog();

    google::ShutdownGoogleLogging();//GLOG内存清理,一般与  google::InitGoogleLogging配对使用
    return 0;
}
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值