轻量级日志库zlog简易使用方法

源码及使用方法作者都有详细介绍:https://github.com/HardySimpson/zlog

本文对自己的首次使用zlog的过程作下简单记录。

1.下载:https : //github.com/HardySimpson/zlog/releases

 2.安装:

$ tar -zxvf zlog-latest-stable.tar.gz
$ cd zlog-latest-stable/
$ make 
$ sudo make install或者$ make PREFIX=/usr/local/
$ sudo make PREFIX=/usr/local/ install

PREFIX表示zlog的安装目标。安装后,刷新动态链接器以确保程序可以找到zlog库。

$ sudo vi /etc/ld.so.conf
/usr/local/lib
$ sudo ldconfig

3.编辑配置文件:

路径自己选择,例如vi /etc/zlog.conf

[formats]

simple = "%m%n"

[rules]

my_cat.DEBUG    "cat_debug.log", 10M * 10 ~ "cat_debug.log.#r";

#my_cat.INFO     "info.log", 10M * 10 ~ "info.log.#r";

#my_cat.WARN     "warn.log", 1M; 

#my_cat.ERROR    "error.log", 1M;

my_dog.DEBUG    "dog_debug.log", 10M * 10 ~ "dog_debug.log.#r";

 

以上是按我自己的使用习惯编辑的配置文件:my_cat.DEBUG    "cat_debug.log", 10M * 10 ~ "cat_debug.log.#r";

my_cat:这里自己随意命名,在初始化库时作为zlog_get_category的参数(下面有代码),表示使用my_cat的模块的日志配置项,my_dog即表示my_dog模块,这样不同的程序就可以在同时使用该日志库配置文件以不同的规则进行日志输出了;

DEBUG:表示级别,trace<debug<info<warn<error;

"cat_debug.log":表示日志名;可以在前面加上路径,相对路径是配置文件路径的相对路径;

10M:表示一个日志文件最大10M,这个根据自己的需求设置,单位可以是K、M、G;

*号后面的10:表示最多产生10个日志,到10个即进入覆盖循环;

"cat_debug.log.#r":表示循环的方式,即在最后以数字递增的方式区分,每新增一个文件时会像下面这样

                                aa.log.2 -> aa.log.3

                                aa.log.1 -> aa.log.2

                                aa.log.0 -> aa.log.1

                                aa.log -> aa.log.0

除此之外还有按时间覆盖,比如一天生成一个日志等等。防止磁盘被写爆,一般限制日志的总数以及单个日志的大小。

4.在C源文件中使用zlog API

$ vi test_hello.c

#include <stdio.h> 

#include "zlog.h"

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

	rc = zlog_init("/etc/zlog.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_debug(c, "hello, zlog debug");
	zlog_info(c, "hello, zlog info");
        zlog_warn(c, "hello, zlog warn");
        zlog_error(c, "hello, zlog error");

	zlog_fini();

	return 0;
} 

 可以按照使用习惯对zlog_debug、zlog_info等加上自己的宏定义

#define LOG_DEBUG zlog_debug

#define LOG_INFO  zlog_info

#define LOG_WARN  zlog_warn

#define LOG_ERROR zlog_error

编译并运行它!


$ 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 -lpthread
$ ./test_hello

我配置的日志路径是cat_debug.log,查看test_hello程序所在路径下的cat_debug.log文件里生成的日志内容

[root@localhost ~] cat cat_debug.log

2020-08-20 14:39:53 DEBUG [24432:ftw.c:113] hello, zlog debug

2020-08-20 14:39:53 INFO [24432:ftw.c:113] hello, zlog info

2020-08-20 14:39:53 WARN [24432:ftw.c:113] hello, zlog warn

2020-08-20 14:39:53 ERROR [24432:ftw.c:113] hello, zlog error

 

参考zlog作者的详细介绍:http://hardysimpson.github.io/zlog/UsersGuide-EN.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值