日期作者版本备注
2020-12-6dingbinv1.0

Tulip-log日志库简介

Tulip-log是作者开源的用C++语言实现的一个稳固高效的日志库。Github地址是:https://github.com/apollo008/...。它不依赖与任何第三方库,次要利用于类Unix操作系统下。它具备以下劣势:

  1. 性能稳固,代码精炼,无任何第三方依赖,运行效率高;
  2. 兼顾个别惯例的log配置文件选项,比方Java编写的log4j的配置格局,上手容易;
  3. 反对多线程同步疾速输入日志;
  4. 反对多种日志输入形式,目前反对的有Console、File和Udp转发日志;
  5. 对最罕用的输入日志到文件的形式,反对文件名滚动和较多丰盛细节个性定义;
  6. 宏定义形式极大简化了日志接口应用,编写打印日志代码简要便当。

应用办法

应用办法可参考examples/hello_tulip.cpp代码示例:

#include "tulip/TLogDefine.h"int main(int argc, char** argv) {    //configurate TLog from logger config file 'logger.conf'    TLOG_CONFIG("logger.conf");    //declare and setup tlog variable    TLOG_DECLARE_AND_SETUP_LOGGER(HELLOTULIP, MAIN);    for (uint32_t i = 0; i < 100; ++i) {        //output log by convenient micro definitions        TLOG_LOG(INFO,"the values is:[%u].", i);        sleep(1);    }    //flush before shutdown TLog    TLOG_LOG_FLUSH();    //at last shutdown TLog    TLOG_LOG_SHUTDOWN();    return 0;}

这里给出一个Tulip log的配置文件logger.conf内容可供参考:

#Tulip log配置文件tlog.rootLogger=INFO, tulipAppender,consoleAppendertlog.appender.tulipAppender=FileAppendertlog.appender.tulipAppender.max_file_size=3024tlog.appender.tulipAppender.fileName=logs/app.logtlog.appender.tulipAppender.flush=falsetlog.appender.tulipAppender.delay_time=1tlog.appender.tulipAppender.layout=PatternLayouttlog.appender.tulipAppender.layout.LogPattern=[%%d] [%%t,%%F:%%n -- %%f() %%l] [%%m]tlog.appender.consoleAppender=ConsoleAppendertlog.appender.consoleAppender.delay_time=1tlog.appender.consoleAppender.layout=PatternLayouttlog.appender.consoleAppender.layout.LogPattern=[%%d] [%%t,%%F:%%n -- %%f() %%l] [%%m]tlog.appender.udpAppender=UdpAppendertlog.appender.udpAppender.ip=192.168.0.211tlog.appender.udpAppender.port=14878tlog.appender.udpAppender.layout=PatternLayouttlog.appender.udpAppender.layout.LogPattern=[%%d] [%%t,%%F:%%n -- %%f() %%l] [%%m]####################################################################

编译和装置

目前反对类Unix环境下编译装置,办法如下:

git clone https://github.com/apollo008/tulip-log.git tulip-log.gitcd tulip-log.gitmkdir build-dircd build-dircmake -DCMAKE_INSTALL_PREFIX=/path/to/install  ../srcmake -j10make install

build实现后会在装置指标下生成bin、include、lib三个目录:

bin目录下hello_tulip可执行程序是tulip log演示程序;

lib目录下的libtulip.so是动静库,用以第三方我的项目应用;

include目录下是第三方我的项目须要include的头文件。