1. 安装
HardySimpson/zlog
环境如下:
安装步骤如下:
1 2 3 4 5 6 7 8 9 10 11 12
| git clone https://github.com/HardySimpson/zlog.git
cd zlog make
sudo make installl
sudo ldconfig
|
2. 配置
在项目根目录下创建一个名为 zlog.conf 的文件。这个文件用来告诉 zlog 你的日志规则。内容如下:
1 2 3 4 5 6 7 8 9 10 11 12 13
| [formats]
log_format = "[%d(%Y-%m-%d %H:%M:%S)] [%-5V] [%f:%-3L]: %m%n"
[rules]
project.* >stdout
project.ERROR "log/error.log", 10M * 5 ~ "log/error-%d(%Y%m%d).
|
3. 示例
main.c 文件示例:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42
| #include <stdio.h> #include <stdlib.h> #include <sys/stat.h>
#include "zlog.h"
int main() { int rc; zlog_category_t *zc;
mkdir("log", 0777);
rc = zlog_init("zlog.conf"); if (rc) { printf("ERROR: Failed to init zlog;\r\n"); return -1; }
zc = zlog_get_category("project"); if (!zc) { printf("ERROR: Failed to get zlog category;\r\n"); zlog_fini(); return -1; }
zlog_info(zc, "System info");
zlog_fatal(zc, "Fatel error");
zlog_fini();
return 0; }
|
4. 将 Zlog 集成到 CMake
可以在 CMakeLists.txt 末尾加入拷贝命令,这样 zlog.conf 就会复制到 build 目录下,避免程序找不到配置文件。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37
| set(THREADS_PREFER_PTHREAD_FLAG ON) find_package(Threads REQUIRED)
find_path(ZLOG_INCLUDE_DIR zlog.h PATHS /usr/local/include /usr/include )
find_library(ZLOG_LIBRARY NAMES zlog PATHS /usr/local/lib /usr/lib )
if(NOT ZLOG_INCLUDE_DIR OR NOT ZLOG_LIBRARY) message(FATAL_ERROR "Could not find zlog library. Please ensure zlog is installed.") else() message(STATUS "Found zlog include dir at: ${ZLOG_INCLUDE_DIR}") message(STATUS "Found zlog library at: ${ZLOG_LIBRARY}") endif()
target_include_directories(${PROJECT_NAME} PRIVATE ${ZLOG_INCLUDE_DIR} )
target_link_libraries(${PROJECT_NAME} PRIVATE Threads::Threads ${ZLOG_LIBRARY} )
add_custom_command(TARGET ${PROJECT_NAME} POST_BUILD COMMAND ${CMAKE_COMMAND} -E copy ${CMAKE_CURRENT_SOURCE_DIR}/zlog.conf ${CMAKE_CURRENT_BINARY_DIR}/zlog.conf )
|
5. Zlog 日志级别
Zlog 默认日志级别有6个,如下表:
| 种类 |
等级值 |
宏 |
| FATAL (致命) |
120 |
zlog_fatal(cat, ...) |
| ERROR (错误) |
100 |
zlog_error(cat, ...) |
| WARN (警告) |
80 |
zlog_warn(cat, ...) |
| NOTICE (注意) |
60 |
zlog_notice(cat, ...) |
| INFO (信息) |
40 |
zlog_info(cat, ...) |
| DEBUG (调试) |
20 |
zlog_debug(cat, ...) |