在算法和软件的对接过程中,需要添加日志,记录算法的运行信息,在遇到崩溃的错误时候,方便定位问题。easylogging++是一款非常轻量级的日志库,使用起来,只需要添加一个头文件,无需任何第三方库,支持文件配置,以及自定义日志格式。
下载链接:https://github.com/abumq/easyloggingpp
代码clone下来之后,只需要将src中的easylogging++.h和easylogging++.cc添加到所需要的工程中,使用INITIALIZE_EASYLOGGINGPP的宏进行初始化,
注意初始化宏INITIALIZE_EASYLOGGINGPP必须使用且只能使用一次,否则就会产生编译错误,该初始化宏最好的位置,位于程序入口函数所在文件的顶部,紧跟在包含头文件的代码后面。
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP
int main(int argc, char* argv[]) {
LOG(INFO) << "My first info log using default logger";
system("pause");
return 0;
}
即可在程序运行的目录下,生成名为myeasylog.log的文件,
同时控制台,也会输出该打印信息。
设置自定义的日志格式
新建名为logging.conf的配置文件,输入内容:
* GLOBAL:
ENABLED = true
TO_FILE = true
TO_STANDARD_OUTPUT = true
FORMAT = "[%level | %datetime] | %msg"
FILENAME = "log\\log_%datetime{%Y%M%d}.log"
MILLISECONDS_WIDTH = 3
PERFORMANCE_TRACKING = false
MAX_LOG_FILE_SIZE = 1048576
LOG_FLUSH_THRESHOLD = 0
* VERBOSE:
ENABLED = false
在代码中读入该配置文件:
#include "easylogging++.h"
INITIALIZE_EASYLOGGINGPP
int main(int argc, char* argv[]) {
el::Configurations conf("logging.conf");
el::Loggers::reconfigureAllLoggers(conf);
LOG(ERROR) << "-----error log";
LOG(WARNING) << "-----warning log";
LOG(INFO) << "-----info log";
LOG(TRACE) << "-----trace log";
LOG(DEBUG) << "-----debug log";
system("pause");
return 0;
}
会在该程序的运行目录下,新建log的文件夹,里面有刚记录的log文件
在C/C++->预处理器->预处理器定义,添加宏ELPP_NO_DEFAULT_LOG_FILE,可以去掉默认生成的myeasylog.log的文件