当前位置: 首页 > 工具软件 > log4z > 使用案例 >

log4z日志库使用

郜修雅
2023-12-01

log4z日志库使用

1 log4z 简介

Log4z是一款开源的轻量级高性能的跨平台日志库 主要针对7*24小时服务器程序的日志输出与跟踪调试,支持64/32位的windows/linux/mac/android/iOS等操作系统.

  • MIT开源授权 授权的限制非常小.
  • 跨平台支持linux & windows & mac, 轻量级 只有一个头文件和一个cpp文件.
  • 不需要关心创建和销毁等问题 全部自动化.
  • 支持多日志分流,滚动日志记录, 优先级过滤, 多线程安全.
  • 屏显日志彩色输出.
  • 支持格式化形式和流形式输入日志.
  • 可通过配置文件配置并进行配置热更新,也可以不做任何配置直接快速使用.
  • 非常高的吞吐和序列化性能, 针对单线程和多线程下的指令级调优. 80万/sec的复杂类型的日志写入速度,和200万/sec的单一字符串写入速度.

2 基本使用

2.1 直接使用:

log4z日志库非常轻量,只有一个 .h 和 .cpp文件,可以直接编进自己的工程,而不需要添加任何的库文件。

2.2 编译成库进行使用

Windows:
利用源码中的vs工程直接编译即可,本文没有试过
Linux :

cd log4z-master/
mkdir build
cd build/
cmake ../
make 

编译后可以相关的目录结构:

.
├── biicode.conf
├── CMakeLists.txt
├── COPYRIGHT
├── doc
│   └── wiki-pic
│       └── log4z_architecture.png
├── g++
│   └── CMakeLists.txt
├── HISTORY
├── lib
│   └── liblog4z.a
├── log4z.cpp
├── log4z.h
├── README.md
├── test   // 针对log4相关的测试程序
    ├── advanced_test.cpp  
    ├── bin
    │   ├── advanced_test
    │   ├── config.cfg
    │   ├── fast_test
    │   ├── oem_test_CP1251.txt
    │   └── stress_test
    ├── CMakeLists.txt
    ├── fast_test.cpp  //速度测试
    └── stress_test.cpp  // 压力测试

2.3 基本使用

  #include "log4z.h"  
  using namespace zsummer::log4z;  
  int main(int argc, char *argv[])  
  {  
      //start log4z  
      ILog4zManager::getRef().start();  
      
      //begin test stream log input....  
      LOGT("stream input *** " << "LOGT LOGT LOGT LOGT" << " *** ");  
      LOGD("stream input *** " << "LOGD LOGD LOGD LOGD" << " *** ");  
      LOGI("stream input *** " << "LOGI LOGI LOGI LOGI" << " *** ");  
      LOGW("stream input *** " << "LOGW LOGW LOGW LOGW" << " *** ");  
      LOGE("stream input *** " << "LOGE LOGE LOGE LOGE" << " *** ");  
      LOGA("stream input *** " << "LOGA LOGA LOGA LOGA" << " *** ");  
      LOGF("stream input *** " << "LOGF LOGF LOGF LOGF" << " *** ");  
  
      // cannot support VC6 or VS2003  
      //begin test format log input....  
      LOGFMTT("format input *** %s *** %d ***", "LOGFMTT", 123456);  
      LOGFMTD("format input *** %s *** %d ***", "LOGFMTD", 123456);  
      LOGFMTI("format input *** %s *** %d ***", "LOGFMTI", 123456);  
      LOGFMTW("format input *** %s *** %d ***", "LOGFMTW", 123456);  
      LOGFMTE("format input *** %s *** %d ***", "LOGFMTE", 123456);  
      LOGFMTA("format input *** %s *** %d ***", "LOGFMTA", 123456);  
      LOGFMTF("format input *** %s *** %d ***", "LOGFMTF", 123456);  
  
      LOGA("main quit ...");  
      return 0;  
  }  

2.4 log4z的高级用法

在源码目录中的文件夹中有关于log4z高级用法

  • stress_test.cpp 对log4z进行压力测试,包括多线程测试,统计日志库的速度
  • advanced_test.cpp 针对log4z的一些高级用法,采用配置文件,配置日志的记录规则,
  • stress_test.cpp 针对log4z进行速度测试

3 后记

本文主要参考 log4z相关源码内容特此记录一下,获取地址
GitHub: https://github.com/zsummer/log4z
后续会对log4z进行源码解析。
在使用log4z日志库的同时,也接触了其他的一些日志库工具,比如说c++ 日志库 log4c spdlog,
c语言日志库 zlog 以及vxworks自带的日志库记录工具等,有时间会对其他的日志进行介绍。

 类似资料: