查看: 2163|回复: 0

[i.MX6ULL竞赛专区] 【我的项目666+AD采集项目】zlog日志函数的使用

[复制链接]
  • TA的每日心情
    开心
    2018-6-27 13:15
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    12

    主题

    22

    帖子

    0

    注册会员

    Rank: 2

    积分
    190
    最后登录
    2019-6-24
    发表于 2018-7-6 16:52:16 | 显示全部楼层 |阅读模式
    本帖最后由 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)
    哎...今天够累的,签到来了~
    回复

    使用道具 举报

    您需要登录后才可以回帖 注册/登录

    本版积分规则

    关闭

    站长推荐上一条 /4 下一条

    Archiver|手机版|小黑屋|恩智浦技术社区

    GMT+8, 2024-4-24 13:13 , Processed in 0.105821 second(s), 19 queries , MemCache On.

    Powered by Discuz! X3.4

    Copyright © 2001-2024, Tencent Cloud.

    快速回复 返回顶部 返回列表