easylogging简单使用示例

37 篇文章 0 订阅

测试版本:v9.97.0

从官网下载源码:easylogging++.cc和easylogging++.h

源码下载

1、默认文件记录

  • #include "easylogging++.h"
    INITIALIZE_EASYLOGGINGPP
    int main()
    {
        LOG(INFO) << "this is info";
        LOG(ERROR) << "this is error";
        LOG(WARNING) << "this is warning";
        LOG(DEBUG) << "this is debug";
        return 0;
    }

2、多文件分级记录

  • #include "easylogging++.h"
    INITIALIZE_EASYLOGGINGPP
    int main()
    {
        // 加载配置文件
        el::Configurations conf("default-logger.conf");
        // 重置默认配置
        el::Loggers::reconfigureLogger("default", conf);
        // 重置所有配置
        el::Loggers::reconfigureAllLoggers(conf);
    
    
        LOG(INFO) << "this is info";
        LOG(ERROR) << "this is error";
        LOG(WARNING) << "this is warning";
        LOG(DEBUG) << "this is debug";
        return 0;
    }

  • default-logger.conf
  • * GLOBAL:
        FORMAT                  =   "%datetime | %level | %logger | %msg" ## 日志输出格式化
        FILENAME                =   "./logs/%datetime{%d/%M/%y}.log" ## 文件名格式化(不能使用%logger等项)
        ENABLED                 =   true ## 是否启用此分级项
        TO_FILE                 =   true ## 是否写入文件中
        TO_STANDARD_OUTPUT      =   true ## 是否输出到控制台
        SUBSECOND_PRECISION     =   3
        PERFORMANCE_TRACKING    =   false ## 性能检测
        MAX_LOG_FILE_SIZE       =   2097152 ## 最大2MB
    * DEBUG:
        FILENAME                =   "./logs/%datetime{%d/%M/%y}-debug.log"
    * WARNING:
        FILENAME                =   "./logs/%datetime{%d/%M/%y}-warning.log"
    * TRACE:
        ENABLED                 =   false
    * VERBOSE:
        ENABLED                 =   false
        TO_FILE                 =   false
    * ERROR:
        FILENAME                =   "./logs/%datetime{%d/%M/%y}-error.log"
    * FATAL:
        ENABLED                 =   false
    

  • 输出结果

3、多模块分级记录

  • #include "easylogging++.h"
    INITIALIZE_EASYLOGGINGPP
    int main()
    {
        // 加载全局配置
        el::Loggers::configureFromGlobal("global.conf");
    
        // 使用第一个日志器
        el::Logger *defaultLogger = el::Loggers::getLogger("default");
        defaultLogger->info("this is info");
        defaultLogger->error("this is error");
    
        // 使用第二个日志器
        el::Logger *melonLogger = el::Loggers::getLogger("melon");
        melonLogger->info("this is info");
        melonLogger->error("this is error");
        melonLogger->debug("this is debug");
    
        return 0;
    }

  • 输出结果
  • global.conf
    ## Comment line
    -- default ## Inline Comment
       * GLOBAL:
          FORMAT                  =   "%datetime | %level | %logger | %msg"
          FILENAME                =   "./logs/%datetime{%d/%M/%y}-default.log"
          ENABLED                 =   true
          TO_FILE                 =   true
          TO_STANDARD_OUTPUT      =   true
          SUBSECOND_PRECISION     =   3
          PERFORMANCE_TRACKING    =   false
          MAX_LOG_FILE_SIZE       =   2097152 ## Throw log files away after 2MB
       *ERROR:
          FILENAME   = "./logs/%datetime{%d/%M/%y}-default-error.log"
    
    -- melon ## Inline Comment
       * GLOBAL:
          FORMAT                  =   "%datetime | %level | %logger | %msg"
          FILENAME                =   "./logs/%datetime{%d/%M/%y}-melon.log"
          ENABLED                 =   true
          TO_FILE                 =   true
          TO_STANDARD_OUTPUT      =   true
          SUBSECOND_PRECISION     =   3
          PERFORMANCE_TRACKING    =   false
          MAX_LOG_FILE_SIZE       =   2097152 ## Throw log files away after 2MB
       *ERROR:
          FILENAME   = "./logs/%datetime{%d/%M/%y}-melon-error.log"
       * DEBUG:
          FILENAME   = "./logs/%datetime{%d/%M/%y}-melon-debug.log"
    

    4、代码配置

  • {
        el::Configurations defaultConf;
        defaultConf.setToDefault();
        // Values are always std::string
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::Format, "%datetime %level    %msg");
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::Enabled, "true");
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::Filename, (K_SDCARD_PATH + "logs/Log-%datetime{%Y-%M-%d-%H-%m-%s}.log"));
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::ToFile, "true");
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::ToStandardOutput, "false");
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::PerformanceTracking, "false");
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::MaxLogFileSize, "2048000");
        defaultConf.set(el::Level::Global,
                        el::ConfigurationType::LogFlushThreshold, "100");
    
        // default logger uses default configurations
        el::Loggers::reconfigureLogger("default", defaultConf);
    }

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值