C语言日志类库 zlog 使用指南(第三章 “Hello World“)

第三章 "Hello World"

3.1 构建和安装 zlog

  1. 下载 zlog:

链接: [https://github.com/HardySimpson/zlog/archive/latest-stable.tar.gz]

  1. 解压并进入目录:
sh 复制代码
$ tar -zxvf zlog-latest-stable.tar.gz
$ cd zlog-latest-stable/
  1. 编译并安装:
sh 复制代码
$ make
$ sudo make install

或者安装到指定目录:

sh 复制代码
$ sudo make PREFIX=/usr/local/ install
  1. 配置系统设置:
sh 复制代码
$ sudo vi /etc/ld.so.conf
/usr/local/lib
$ sudo ldconfig
  1. 其他可用的 make 命令:
  • make 32bit:在64位机器上编译32位版本,需要 libc6-dev-i386
  • make noopt:无 GCC 优化
  • make doc:需要 lyxhevea
  • make test:测试代码,也是 zlog 的好例子

3.2 在用户应用程序中调用和链接 zlog

  1. 包含头文件:
c 复制代码
#include "zlog.h"
  1. 编译和链接:
sh 复制代码
$ cc -c -o app.o app.c -I/usr/local/include
$ cc -o app app.o -L/usr/local/lib -lzlog -lpthread

3.3 Hello World 示例

  1. 创建源文件 test_hello.c
c 复制代码
#include <stdio.h>
#include "zlog.h"

int main(int argc, char** argv)
{
	int rc;
	zlog_category_t *c;

	rc = zlog_init("test_hello.conf");
	if (rc) {
		printf("init failed\n");
		
		return -1;
	}

	c = zlog_get_category("my_cat");
	if (!c) {
		printf("get cat fail\n");
		zlog_fini();

		return -2;
	}

	zlog_info(c, "hello, zlog");
	zlog_fini();
	
	return 0;
}
  1. 创建配置文件 test_hello.conf
conf 复制代码
[formats]
simple = "%m%n"

[rules]
my_cat.DEBUG >stdout; simple
  1. 编译和运行:
sh 复制代码
$ cc -c -o test_hello.o test_hello.c -I/usr/local/include
$ cc -o test_hello test_hello.o -L/usr/local/lib -lzlog
$ ./test_hello

hello, zlog

3.4 更简单的 Hello World 示例

  1. 创建源文件 test_default.c
c 复制代码
#include <stdio.h>
#include "zlog.h"

int main(int argc, char** argv)
{
	int rc;
	rc = dzlog_init("test_default.conf", "my_cat");

	if (rc) {
		printf("init failed\n");
		
		return -1;
	}

	dzlog_info("hello, zlog");
	zlog_fini();

	return 0;
}
  1. 配置文件 test_default.conftest_hello.conf 相同

  2. 区别:

这个例子使用 dzlog API,它包含一个默认的 zlog_category_t,使用更简单。

总结:这一章演示了如何下载、构建、安装 zlog,并在一个简单的 C 语言项目中使用它进行日志记录。通过两个示例代码和配置文件,展示了 zlog 的基本用法和配置方法。

相关推荐
yunfanleo5 分钟前
docker run m3e 配置网络,自动重启,GPU等 配置渠道要点
linux·运维·docker
IU宝10 分钟前
C/C++内存管理
java·c语言·c++
qq_4597300314 分钟前
C 语言面向对象
c语言·开发语言
糖豆豆今天也要努力鸭36 分钟前
torch.__version__的torch版本和conda list的torch版本不一致
linux·pytorch·python·深度学习·conda·torch
烦躁的大鼻嘎44 分钟前
【Linux】深入理解GCC/G++编译流程及库文件管理
linux·运维·服务器
ac.char1 小时前
在 Ubuntu 上安装 Yarn 环境
linux·运维·服务器·ubuntu
敲上瘾1 小时前
操作系统的理解
linux·运维·服务器·c++·大模型·操作系统·aigc
长弓聊编程1 小时前
Linux系统使用valgrind分析C++程序内存资源使用情况
linux·c++
陌小呆^O^1 小时前
Cmakelist.txt之win-c-udp-client
c语言·开发语言·udp
cherub.1 小时前
深入解析信号量:定义与环形队列生产消费模型剖析
linux·c++