普通日志记录
对于普通的日志记录,我们可以选择以下两个比较常用的方式:
·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次之后,就不再记录日志信息&