easylogging++ 使用笔记(ubuntu 20.04)

前言

以下在ubuntu20.04上测试过,windows未测试。

1. 多线程支持

基本使用方法都可以百度到,这里说一下线程安全的设置;
easylogging 有一个支持线程安全的宏定义,需要添加到CMakeLists.txt里:

cmake_minimum_required(VERSION 3.16.1)
project(project_name)
# 定义easylogging支持线程安全的宏定义
add_definitions(-DELPP_THREAD_SAFE)

可以在代码里测试是否开启多线程支持:

#ifdef ELPP_THREAD_SAFE
    LOG(DEBUG) << "easylogging++ | 已定义 ELPP_THREAD_SAFE,easylogging++ 线程安全!";
#else
    LOG(ERROR) << "easylogging++ | 未定义 ELPP_THREAD_SAFE,easylogging++ 线程不安全!程序可能崩溃,请定义 ELPP_THREAD_SAFE!";
#endif

2. 日志分级

以下为自己的理解,并不专业。
LOG(INFO) << “打印程序运行的过程” + “参数信息提示”;;
LOG(DEBUG) << “打印参数信息”;
LOG(WARNING) << “非必要功能失败”;
LOG(ERROR) << “必要服务连接失败”;
LOG(FATAL) << “引发程序崩溃现场的信息”;

3. 重定义easylogging++配置

    // 重定义easylog配置
    el::Configurations conf("../config/log.conf");
    conf.set(el::Level::Info, el::ConfigurationType::Format, Green + std::string("[%datetime %level] ") + "%msg" + Reset);
    conf.set(el::Level::Debug, el::ConfigurationType::Format, Blue + std::string("[%datetime %level] ") + "%msg" + Reset);
    conf.set(el::Level::Warning, el::ConfigurationType::Format, Yellow + std::string("[%datetime %level] ") + "%msg" +Reset);
    conf.set(el::Level::Error, el::ConfigurationType::Format, Red + std::string("[%datetime %level] ") + "%fbase:%line" + " | %msg" + Reset);
    conf.set(el::Level::Fatal, el::ConfigurationType::Format, Red + std::string("[%datetime %level] ") + "%fbase:%line" + " | %msg" + Reset);
    el::Loggers::reconfigureAllLoggers(conf);

4. 使用效果

    LOG(INFO) << "我是LOG(INFO)";
    LOG(DEBUG) << "我是LOG(DEBUG)";
    LOG(WARNING) << "我是LOG(WARNING)";
    LOG(ERROR) << "我是LOG(ERROR)";
    LOG(FATAL) << "我是LOG(FATAL)";

效果图(有水印,问题不大)
在这里插入图片描述

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值