简单好用的Log类, easylogging++

2018-02-03 10:18:23来源:网络收集作者:管理员人点击

分享

   名称:easyLoggingpp


   GitHub 地址:easylogging(点击链接)


   特点:简单、支持多级log输出,支持多种输出形式:文件、控制台、多线程支持


   之前版本是在项目工程中增加一个.h头文件,现在版本为需要头文件easylogging++.h和实现文件 easyloggin++.cc

官方社区给出的demo代码如下:


#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP
int main(int argc, char* argv[]) {
LOG(INFO) << "My first info log using default logger";
return 0;
}   就是如此简单"粗暴",如果调试不通过,请先设置项目字符集为多字节,默认使用多字节字符集(Use Multi_Byte Character Set)。

   如果有朋友说,为了兼容性好,方便移植,还是使用Unicode字符集吧,那么easylogging++还能愉快的玩耍不?当然是可以的。


   为了支持多线程和Unicode,需要添加如下两个宏定义,


   #define ELPP_UNICODE          //使用Unicode字符集


   #define ELPPP_THREAD_SAFE    //多线程支持


#define ELPP_UNICODE
#define ELPP_THREAD_SAFE
#include "easylogging++.h"
int main(int argc, const char *argv[])
{
START_EASYLOGGINGPP(argc, argv);//...do your task
}测试代码
#include "easylogging++.h"
#include
using namespace std;
INITIALIZE_EASYLOGGINGPP
int main()
{
//****初始化log配置文件
el::Configurations conf("myconfig.conf");
el::Loggers::reconfigureLogger("default", conf);
el::Loggers::reconfigureAllLoggers(conf);
LOG(INFO) << "my easyloging is launching";
long m_ISum =0;
for (int i = 0; i < 500000000; i++)
{
m_ISum = m_ISum + i;
}
//控制台输出
cout << " Sum is :" << m_ISum << endl;
for (int i = 0; i < 20; i++)
{
LOG(INFO) << " Index is :" << i;
}
//log文件输出
LOG(INFO) << " Sum is :" << m_ISum;
LOG(INFO) << "my easyloging is success";
return 0;
}

自定义配置文件myconfig.conf,可以配置输出方式


* GLOBAL:
FORMAT ="%datetime %level [%logger] %msg"
FILENAME="logs/Log-%datetime{%Y-%M-%d-%H-%m-%s}.log"
ENABLED=true
TO_FILE=true
TO_STANDARD_OUTPUT =true
SUBSECOND_PRECISION=6
PERFORMANCE_TRACKING =true
MAX_LOG_FILE_SIZE=2097152 ## 2MB - Comment starts with two hashes (##)
LOG_FLUSH_THRESHOLD=100 ## Flush after every 100 logs
* DEBUG:
FORMAT = "%datetime{%d/%M} %func %msg"
注意:把myconfig.conf文件保存放到工程输出目录下

      1.源码调试时放在和源文件同级目录;


      2.输出是放在exe同目录下


简单好用的Log类, easylogging++


简单好用的Log类, easylogging++


最新文章

123

最新摄影

微信扫一扫

第七城市微信公众平台