zlog 是一个轻量级的日志库,旨在提供高效、灵活的日志记录功能。它适用于 C/C++ 项目,特别是在需要高性能和低内存占用的嵌入式系统中。
一、zlog库的交叉编译及安装
git clone https://github.com/HardySimpson/zlog.git //下载源码包
cd zlog //进入工程目录
mkdir build_arm //创建文件夹用于存放工程输出内容
vim src/makefile //修改makefile中的PREFIX为自己创建的目录,如下图所示
make //如下图修改为arm交叉编译
make install //将生成的库和工具拷贝至自己创建的目录
修改图中的CC为arm编译链,修改PREFIX为创建的build_arm路径,修改后执行make && make install即可。
二、zlog配置文件
大部分的zlog的行为都取决于配置文件,比如把日志打到哪里去,用什么格式,怎么转档,都由配置文件来决定。
以如下配置文件 /etc/zlog.conf 为例:
#DEBUG = 20, LOG_DEBUG
#INFO = 40, LOG_INFO
#NOTICE = 60, LOG_NOTICE
#WARN = 80, LOG_WARNING
#ERROR = 100, LOG_ERR
#FATAL = 120, LOG_ALERT
#UNKNOWN = 254, LOG_ERR
[global]
default format = "%d.%us %-6V (%F:%L) - %m%n"
[rules]
*.* "./mylog.log", 1MB ~ "./mylog-%d(%Y%m%d).#2s.log"
*.* >stdout;
三、zlog的使用
#include <string.h>
#include <sys/syscall.h>
#include <stdlib.h>
#include "zlog.h"
#define LOG_FILE "/etc/zlog.conf" //指定配置文件路径,若当前文件夹直接写名字
int main(int argc, char *argv[])
{
int rc;
zlog_category_t *category;
rc = zlog_init(LOG_FILE);
if (rc) {
printf("init failed %s\n", LOG_FILE);
return -1;
}
category = zlog_get_category("zlogdemo");
if (!category)
{
printf("get fail\n");
zlog_fini();
return -1;
}
zlog_debug(category, "zlog - debug");
zlog_info(category, "zlog - info");
zlog_notice(category, "zlog - notice");
zlog_warn(category, "zlog - warn");
zlog_error(category, "zlog - error");
zlog_fatal(category, "zlog - fatal");
zlog_fini();
return 0;
}