名称:easyloggingpp
GitHub 地址:easylogging (点击链接)
特点:简单,支持多级log输出,支持多种输出形式:文件,控制台,多线程支持
之前版本是在项目工程增加一个.h头文件,现在版本为需要头文件和实现文件 easylogging++.cc easylogging++.h
官方社区给出的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 ELPP_THREAD_SAFE //多线程支持
添加在
#include "easylogging++.h" 之前 同时 int main(int argc, const char * argv[]) {START_EASYLOGGINGPP(argc, argv);
}
测试代码:
Main.cpp
#include "easylogging++.h" #include <iostream> 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 = "