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)
posted @ 2020-01-10 16:28  heimazaifei  阅读(448)  评论(0编辑  收藏  举报