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 小时前
介绍我经常使用的两款轻便易用的 JSON 工具
linux·服务器·json
XY.散人2 小时前
初识Linux · 进程终止
linux·运维·服务器
Lvan的前端笔记2 小时前
linux:详解nohup命令
linux·运维·服务器
小陈又菜2 小时前
数据结构-栈(理解版)
c语言·数据结构
bossface2 小时前
理解线程库和线程排斥(锁)
linux·运维·服务器·c语言·c++
iFulling2 小时前
【Linux实践】实验八:Shell程序的创建及变量
android·linux·服务器
BBM的开源HUB2 小时前
在 Ubuntu 24.04 VPS 部署 SoftEther VPN 服务器(一)
linux·服务器·ubuntu
水上冰石2 小时前
ubuntu 安装neo4j
linux·ubuntu·neo4j
技术无疆3 小时前
【Python】The Algorithms:开源算法的宝库
java·c语言·开发语言·c++·python·算法·开源