CPP(c++) google glog

Google 轻量级,入门简单,功能较全,线程安全,支持自定义。

参考: https://www.jianshu.com/p/a576ed1c2cd3

int main(int argc,char* argv[])
{
    google::InitGoogleLogging(argv[0]);// 初始化
    FLAGS_logtostderr = false//设置日志消息是否转到标准输出而不是日志文件
    FLAGS_alsologtostderr = false//设置日志消息除了日志文件之外是否去标准输出
    FLAGS_log_prefix = true//设置日志前缀是否应该添加到每行输出
    FLAGS_log_dir = "./log";    //预创建好
    //google::SetStderrLogging(google::GLOG_FATAL);
     for(int i = 0 ; i < 100 ; i++)
     {
          LOG(INFO) << "Hello,info! ";
          LOG(ERROR) << "Hello erroe! " <<i;
          LOG(WARNING) << "Hello,waring! "<<i<<"+"<<i<<"="<<i+i;
          //LOG(FATAL) << "Hello,fatal! ";
      }
      google::ShutdownGoogleLogging();//关闭log
      return 0;
}
CHECK* 宏定义:

#define CHECK(a)                                            \
   if(!(a)) {                                              \
       LOG(ERROR) << " CHECK failed " << endl              \
                   << #a << "= " << (a) << endl;          \
       abort();                                            \
   }                                                      \

#define CHECK_NOTNULL(a)                                    \
   if( NULL == (a)) {                                      \
       LOG(ERROR) << " CHECK_NOTNULL failed "              \
                   << #a << "== NULL " << endl;           \
       abort();                                            \
    }

#define CHECK_NULL(a)                                       \
   if( NULL != (a)) {                                      \
       LOG(ERROR) << " CHECK_NULL failed " << endl         \
                   << #a << "!= NULL " << endl;           \
       abort();                                            \
    }


#define CHECK_EQ(a, b)                                      \
   if(!((a) == (b))) {                                     \
       LOG(ERROR) << " CHECK_EQ failed "  << endl          \
                   << #a << "= " << (a) << endl           \
                   << #b << "= " << (b) << endl;          \
       abort();                                            \
    }

#define CHECK_NE(a, b)                                      \
   if(!((a) != (b))) {                                     \
       LOG(ERROR) << " CHECK_NE failed " << endl           \
                   << #a << "= " << (a) << endl           \
                   << #b << "= " << (b) << endl;          \
       abort();                                            \
    }

#define CHECK_LT(a, b)                                      \
   if(!((a) < (b))) {                                      \
       LOG(ERROR) << " CHECK_LT failed "                   \
                   << #a << "= " << (a) << endl           \
                   << #b << "= " << (b) << endl;          \
       abort();                                            \
    }

#define CHECK_GT(a, b)                                      \
   if(!((a) > (b))) {                                      \
       LOG(ERROR) << " CHECK_GT failed "  << endl          \
                  << #a <<" = " << (a) << endl            \
                   << #b << "= " << (b) << endl;          \
       abort();                                            \
    }

#define CHECK_LE(a, b)                                      \
   if(!((a) <= (b))) {                                     \
       LOG(ERROR) << " CHECK_LE failed "  << endl          \
                   << #a << "= " << (a) << endl           \
                   << #b << "= " << (b) << endl;          \
       abort();                                            \
    }

#define CHECK_GE(a, b)                                      \
   if(!((a) >= (b))) {                                     \
       LOG(ERROR) << " CHECK_GE failed "  << endl          \
                   << #a << " = "<< (a) << endl            \
                   << #b << "= " << (b) << endl;          \
       abort();                                            \
    }

#define CHECK_DOUBLE_EQ(a, b)                               \
   do {                                                    \
       CHECK_LE((a), (b)+0.000000000000001L);              \
       CHECK_GE((a), (b)-0.000000000000001L);              \
    }while (0)

原文链接: https://www.cnblogs.com/heimazaifei/p/12176749.html

欢迎关注

微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍;

也有高质量的技术群,里面有嵌入式、搜广推等BAT大佬

    CPP(c++) google glog

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/324202

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年3月1日 下午1:07
下一篇 2023年3月1日 下午1:08

相关推荐