Easylogging++ 记录方式

本文详细介绍了Easylogging++的多种日志记录方式,包括普通日志、条件日志、偶然日志、STL容器日志、系统日志、CHECK宏日志以及printf和perror风格的日志记录。通过各种宏定义,如LOG(LEVEL)、LOG_IF(condition, LEVEL)、LOG_EVERY_N(n, LEVEL)等,开发者可以根据不同需求灵活记录日志。" 104676145,5111131,LeetCode 中心对称数问题详解,"['算法', '编程', 'LeetCode', '字符串处理']
摘要由CSDN通过智能技术生成

普通日志记录

   对于普通的日志记录,我们可以选择以下两个比较常用的方式:

    ·LOG(LEVEL)

    ·CLOG(LEVEL, logger ID)

#include "easylogging++.h"  
  
INITIALIZE_EASYLOGGINGPP  
  
int main(int argc, char** argv)  
{  
    /// 可以直接使用,不记录任何日志信息  
    LOG(INFO);  
    CLOG(INFO, "default");  
  
    LOG(INFO) << "Here is very simple example.";  
    CLOG(INFO, "default") << "Here is very simple example.";  
      
    system("pause");  
    return 0;  
}  

   通过上面的演示代码可以发现,其实LOG(LEVEL)就是CLOG(LEVEL, "default")的缩写。不过,如果我们在包含头文件#include"easylogging++.h"的代码前面使用另外一个指定的ID来定义宏ELPP_DEFAULT_LOGGER,那么这个指定的ID就会自动地替换掉"default"。需要主意的是,这个指定ID所标识的日志记录器必须保证使用前已经被注册,否则,将无法正常使用宏LOG(LEVEL)来记录日志信息。下面的代码演示这个功能:

#define ELPP_DEFAULT_LOGGER "testlog"  
#include "easylogging++.h"  
  
INITIALIZE_EASYLOGGINGPP  
  
int main(int argc, char** argv)  
{  
    /// 使用前,注册ID为testlog的日志记录器  
    el::Logger* newLogger = el::Loggers::getLogger("testlog");  
    LOG(INFO) << "Here is very simple example.";  
  
    system("pause");  
    return 0;  
}  

 

条件日志记录

   条件日志就是只有当满足某一条件的时候才进行日志记录,否则将忽略记录。下面是记录条件日志的两个宏定义:

 

   LOG_IF(condition, LEVEL)

   CLOG_IF(conditon, LEVEL, logger ID)

   上面两个宏定义中condition条件为真时,日志信息才被记录,在某些应用场景下这回显得十分便利,下面的代码演示了条件日志宏定义的用法:

#include "easylogging++.h"  
  
INITIALIZE_EASYLOGGINGPP  
  
int main(int argc, char** argv)  
{  
    /// 下面这三个日志,只有第一个会输出  
    LOG_IF(1 == 1, INFO) << "1 is equal to 1";  
  
    LOG_IF(1 > 2, INFO) << "1 is greater than 2";  
  
    LOG_IF(1 == 2, DEBUG) << "1 is equal to 2";  
  
    system("pause");  
    return 0;  
}  

 

 

偶然日志记录

  偶然日志可以分为以下三种常见的情况,具体使用方法参数示例代码:

  ·每N次记录一次日志,对应的宏定义是:LOG_EVERY_N(n, LEVEL)或者CLOG_EVERY_N(n,LEVEL, logger ID)

  ·当计数达到N次之后,才开始记录日志,对应的宏定义是:LOG_AFTER_N(n, LEVEL)

  ·当记录次数达到N次之后,就不再记录日志信息&

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值