easylog 使用_日志库EasyLogging++学习系列(7)—— 记录方式详解

转载自:

在前面所列文章的演示代码中,其实已经展示了一部分记录日志的方式。为了使用方便,在 Easylogging++ 中,通过使用宏的集合来完成日志记录。

普通日志记录

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

LOG(LEVEL)

CLOG(LEVEL, logger ID)

两个宏定义的中 LEVEL 请参看《日志库EasyLogging++学习系列(2)—— 日志级别》,而宏CLOG(CUSTOM LOG)中的 logger ID 可以参看《日志库EasyLogging++学习系列(6)—— 日志记录器》。下面的代码简单演示了如何使用这两个宏:

#include "easylogging++.h"

INITIALIZE_EASYLOGGINGPP

int main(int argc, char** argv)

{

/// 可以直接使用,不记录任何日志信息

LOG(INFO);

CLOG(INFO, "default");

LOG(INFO) <

CLOG(INFO, "default") <

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) <

system("pause");

return 0;

}

条件日志记录

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

LOG_IF(condition, LEVEL)

CLOG_IF(condition, LEVEL, logger ID)

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

#include "easylogging++.h"

INITIALIZE_EASYLOGGINGPP

int main(int argc, char** argv)

{

/// 下面这三个日志,只有第一个会输出

LOG_IF(1 == 1, INFO) <

LOG_IF(1 > 2, INFO) <

LOG_IF(1 == 2, DEBUG) <

system("pause");

return 0;

}

偶然日志记录

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

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

当计数达到 N 次之后࿰

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值