• 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)
    
    • 1
    • 2
    • 3
    • 4

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

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

    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);
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    4. 使用效果

        LOG(INFO) << "我是LOG(INFO)";
        LOG(DEBUG) << "我是LOG(DEBUG)";
        LOG(WARNING) << "我是LOG(WARNING)";
        LOG(ERROR) << "我是LOG(ERROR)";
        LOG(FATAL) << "我是LOG(FATAL)";
    
    • 1
    • 2
    • 3
    • 4
    • 5

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

  • 相关阅读:
    Android修行手册 - ScrollView示例和监听
    RabbitMQ常用命令
    亚马逊卖家参与活动:提升产品排名的神秘法宝?
    代码随想录算法训练营第五十七天 |392.判断子序列、115.不同的子序列
    javaweb 之 会话技术 Cookie Session 登录注册案例 验证码
    Nginx配置负载均衡
    麒麟KYSEC使用方法01--开启及关闭kysec
    vue 父子孙页面传值的多种方法
    【Unity Android】Unity链接安卓手机调试
    P272 小码君统统计字母频率-1
  • 原文地址:https://blog.csdn.net/weixin_44557375/article/details/125631844