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

效果图(有水印,问题不大)
easylogging++ 使用笔记(ubuntu 20.04)_第1张图片

你可能感兴趣的:(3rdpart,c++,日志)