在算法和软件的对接过程中,需要添加日志,记录算法的运行信息,在遇到崩溃的错误时候,方便定位问题。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的文件

Logo

北京人形旗下天工造物具身智能开源社区,聚焦具身天工与慧思开物两大平台

更多推荐