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

相关推荐
qq_183802872 分钟前
Linux内核idr数据结构使用
linux·运维·服务器
.小小陈.2 分钟前
数据结构2:单链表
c语言·开发语言·数据结构·笔记·学习方法
噜啦噜啦嘞好39 分钟前
Linux:库制作与原理
linux·运维·服务器
---学无止境---39 分钟前
Linux中将EFI从物理模式切换到虚拟模式efi_enter_virtual_mode函数的实现
linux
小莞尔1 小时前
【51单片机】【protues仿真】基于51单片机送带计数器系统
c语言·单片机·嵌入式硬件·物联网·51单片机
刘某的Cloud1 小时前
磁盘-IO
linux·运维·系统·磁盘io
我狸才不是赔钱货2 小时前
容器:软件世界的标准集装箱
linux·运维·c++·docker·容器
云知谷2 小时前
【嵌入式基本功】单片机嵌入式学习路线
linux·c语言·c++·单片机·嵌入式硬件
挺6的还3 小时前
Boost搜索引擎
linux
天赐学c语言3 小时前
Linux进程信号(上)
linux·可重入函数·进程信号