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

zlog移植

乜嘉悦
2023-12-01

移植zlog开发日志。

  • zlog的下载、编译与安装

git clone https://github.com/HardySimpson/zlog.git //下载源码包

cd zlog //进入工程目录

mkdir build_linux build_arm //创建文件夹用于存放工程输出内容

vim src/makefile //修改makefile中的PREFIX为自己创建的目录build_arm,如下所示, 

# Installation related variables

 PREFIX?=../build_arm

INCLUDE_PATH=include

LIBRARY_PATH=lib

BINARY_PATH=bin

INSTALL_INCLUDE_PATH= $(PREFIX)/$(INCLUDE_PATH)

INSTALL_LIBRARY_PATH= $(PREFIX)/$(LIBRARY_PATH)

INSTALL_BINARY_PATH= $(PREFIX)/$(BINARY_PATH)

make //默认gcc编译,若需要交叉编译指定编译工具链即可:make CC=arm-linux-xxx-gcc

在该处可能存在交叉编译失败的情况,暂时未找到原因,可以使用自动配置版本编译。

make install //将生成的库和工具拷贝至自己创建的目录

自动配置版本https://github.com/bmanojlovic/zlog

cd zlog //进入工程目录

chmod +x autogen.sh

./autogen.sh

如果出现不能识别的函数错误,或报"Syntax error: "(" unexpected 的错误,请取消dash:

    dpkg-reconfigure dash

选择  no ;然后再执行:./autogen.sh

CC=arm-linux-gnueabihf-gcc ./configure --prefix=/opt/embedded/zlog --host=arm-linux-gnueabihf

执行:make

    可能会出现以下错误:

    ./.libs/libzlog.so: undefined reference to `rpl_realloc'

    这时,我们要改 makefile 文件,cd 到 src 文件下,修改 makefile:将 rpl_realloc 替换为 realloc,保存,执行:

    make clean

    make

    make install

  • zlog的使用

#include "../includess/zlog.h" 

int main(int argc, char *argv[])

{

int rc; rc = dzlog_init("/etc/zlog.conf", "my_class");

//指定配置文件路径及类型名 初始化zlog

if (rc)

{

printf("init failed\n");

return -1;

}

dzlog_info("hello, zlog info"); //打印普通信息

dzlog_error("hello, zlog error");//打印错误信息

dzlog_warn("hello, zlog warning"); //打印报警信息

dzlog_debug("hello, zlog debug"); //打印调试信息

zlog_fini(); //释放zlog

}

  • zlog的配置

[global]

strict init = true

buffer min = 1024

buffer max = 2MB

rotate lock file = /tmp/zlog.lock

default format = "%d.%us %-6V (%c:%F:%L) - %m%n"

file perms = 600

[rules]

my_class.* >stdout;

my_class.* "/xxx/xxx/log.txt", 1M;

通过zlog-chk-conf对zlog.conf进行语法检查,没有报错如下

#./zlog-chk-conf /etc/zlog.conf 

--[/etc/zlog.conf] syntax right

 类似资料: