本帖最后由 apple_9938 于 2018-7-18 16:05 编辑
1、下载安装zlog库
下载 http://github.com/downloads/HardySimpson/zlog/zlog-latest-stable.tar.gz
解压, 安装 $tar -xvzf zlog-latest-stable.tar.gz $cd zlog-latest-stable/ $./config $make $sudo make install #默认安装目录/usr/local 2、zlog简介 zlog里面有三个重要的概念,category,format,rule 分类(Category)用于区分不同的输入,代码中的分类变量的名字是一个字符串,在一个程序里面可以通过获取不同的分类名的category用来后面输出不同分类的日志,用于不同的目的。 格式(Format)是用来描述输出日志的格式,比如是否有带有时间戳, 是否包含文件位置信息等,上面的例子里面的格式simple就配置成简单的用户输入的信息+换行符。 规则(Rule)则是把分类、级别、输出文件、格式组合起来,决定一条代码中的日志是否输出,输出到哪里,以什么格式输出。 3、编写规则文件 代码如下: [formats] simple = "%F %m %n" normal = "%d %m %n" [rules] my_cat.DEBUG "hello_debug.log",1M;simple my_cat.ERROR "hello_error.log",1M;normal
解释: %d():打日志的时间。这个后面要跟一对小括号()内含说明具体的日期格式。就像%d(%F)或者%d(%m-%d %T)。如果不跟小括号,默认是%d(%F%T) %m:用户日志,用户从zlog函数输入的日志。 %n:换行符 %F: 源代码文件名 zlog有6个默认的级别:"DEBUG", "INFO", "NOTICE", "WARN", "ERROR"和"FATAL" aa.debug 代码内等级>=debug
aa.=debug 代码内等级==debug
aa.!debug 代码内等级!=debug
my_cat.DEBUG "hello_debug.log",1M;simple my_cat.ERROR "hello_error.log",1M;normal 这两行代码定义两种不同的日志输出到两个不同文件,分别为:hello_debug.log hello_error.log
4、编写hello.c函数#include"zlog.h"
#include"stdio.h"
int main(void)
{
int rc;
zlog_category_t *c;
rc=zlog_init("zlog.conf");
if(rc){
printf("init failed\n");
return -1;
}
c=zlog_get_category("my_cat");
if(!c){
zlog_error(c,"get cat fail\n");
zlog_fini();
return -2;
}
zlog_debug(c,"hello,zlog");
zlog_error(c,"error");
zlog_fini();
}
解释 :
zlog_get_category("my_cat"); my_cat就是zlog.conf中定义的类名
5、gcc编译hello.c生产hello可执行文件,之后可以看到当前目录生成hello_debug.log hello_error.log 分别打印hello_debug.log hello_error.log内容
$cat hello_debug.log
hello.c hello,zlog
hello.c error
$cat hello_error.log
2018-07-06 16:45:32 error
可以看到以不同的格式输出到不同的文件里面了。
zlog-latest-stable(1).tar.gz
(117.26 KB, 下载次数: 0)
|