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 的基本用法和配置方法。

相关推荐
IT成长日记41 分钟前
【Nginx开荒攻略】Nginx虚拟主机配置:从域名、端口到IP的完整指南
linux·运维·服务器·nginx·虚拟主机
迎風吹頭髮2 小时前
UNIX下C语言编程与实践53-UNIX 共享内存控制:shmctl 函数与共享内存管理
服务器·c语言·unix
迎風吹頭髮2 小时前
Linux内核架构浅谈8-Linux内核与UNIX的传承:设计思想与特性差异
linux·运维·架构
黑马金牌编程3 小时前
Linux 服务器常见的性能调优
linux·运维·服务器·性能优化
jieyu11193 小时前
网络、主机安全扫描工具
linux·安全·系统安全
tianyuanwo3 小时前
Linux进程管理中的T状态问题分析与解决体系
linux·运维·进程管理·t状态
liuyao_xianhui4 小时前
Linux_基本指令1
linux·运维·服务器
守望时空334 小时前
Linux挂载NTFS分区指南
linux
逆小舟5 小时前
【C/C++】指针
c语言·c++·笔记·学习
shan~~5 小时前
linux达梦数据库操作
linux·数据库·chrome