乐趣区

关于c++:C实现的高效简便易用的Tuliplog日志库边学边用

日期 作者 版本 备注
2020-12-6 dingbin v1.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,consoleAppender
tlog.appender.tulipAppender=FileAppender
tlog.appender.tulipAppender.max_file_size=3024
tlog.appender.tulipAppender.fileName=logs/app.log
tlog.appender.tulipAppender.flush=false
tlog.appender.tulipAppender.delay_time=1
tlog.appender.tulipAppender.layout=PatternLayout
tlog.appender.tulipAppender.layout.LogPattern=[%%d] [%%t,%%F:%%n -- %%f() %%l] [%%m]

tlog.appender.consoleAppender=ConsoleAppender
tlog.appender.consoleAppender.delay_time=1
tlog.appender.consoleAppender.layout=PatternLayout
tlog.appender.consoleAppender.layout.LogPattern=[%%d] [%%t,%%F:%%n -- %%f() %%l] [%%m]

tlog.appender.udpAppender=UdpAppender
tlog.appender.udpAppender.ip=192.168.0.211
tlog.appender.udpAppender.port=14878
tlog.appender.udpAppender.layout=PatternLayout
tlog.appender.udpAppender.layout.LogPattern=[%%d] [%%t,%%F:%%n -- %%f() %%l] [%%m]
####################################################################

编译和装置

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

git clone https://github.com/apollo008/tulip-log.git tulip-log.git
cd tulip-log.git
mkdir build-dir
cd build-dir
cmake -DCMAKE_INSTALL_PREFIX=/path/to/install  ../src
make -j10
make install

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

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

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

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

退出移动版