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

相关推荐
疯狂飙车的蜗牛1 小时前
从零玩转CanMV-K230(4)-小核Linux驱动开发参考
linux·运维·驱动开发
远游客07133 小时前
centos stream 8下载安装遇到的坑
linux·服务器·centos
马甲是掉不了一点的<.<3 小时前
本地电脑使用命令行上传文件至远程服务器
linux·scp·cmd·远程文件上传
jingyu飞鸟3 小时前
centos-stream9系统安装docker
linux·docker·centos
XH华3 小时前
初识C语言之二维数组(下)
c语言·算法
超爱吃士力架4 小时前
邀请逻辑
java·linux·后端
cominglately6 小时前
centos单机部署seata
linux·运维·centos
魏 无羡6 小时前
linux CentOS系统上卸载docker
linux·kubernetes·centos
CircleMouse6 小时前
Centos7, 使用yum工具,出现 Could not resolve host: mirrorlist.centos.org
linux·运维·服务器·centos
Uu_05kkq7 小时前
【C语言1】C语言常见概念(总结复习篇)——库函数、ASCII码、转义字符
c语言·数据结构·算法