• 记录:ubuntu安装zlog及使用


    1.介绍
    zlog是一个高可靠性、高性能、线程安全、灵活、概念清晰的纯C日志函数库。
    详细见官网:http://hardysimpson.github.io/zlog/UsersGuide-CN.html
    2.特性
    (1)syslog分类模型,比log4j模型更加直接了当。
    (2)日志格式定制,类似于log4j的pattern layout。
    (3)多种输出,包括动态文件、静态文件、stdout、stderr、syslog、用户自定义输出函数。
    (4)运行时手动、自动刷新配置文件(同时保证安全)。
    (5)高性能,在我的笔记本上达到25万条日志每秒, 大概是syslog(3)配合rsyslogd的1000倍速度。
    (6)用户自定义等级。
    (7)多线程和多进程环境下保证安全转档。
    (8)精确到微秒。
    (9)简单调用包装dzlog(一个程序默认只用一个分类)。
    (10)MDC,线程键-值对的表,可以扩展用户自定义的字段。
    (11)自诊断,可以在运行时输出zlog自己的日志和配置状态。
    (12)不依赖其他库,只要是个POSIX系统就成(当然还要一个C99兼容的vsnprintf)。
    3.安装
    zlog下载地址: https://github.com/HardySimpson/zlog
    解压之后进入
    执行:

    #make
    #make install
    
    • 1
    • 2

    执行install之后,我们可以看到动态库与头文件分别拷贝到了 ‘/usr/local/lib/’ 与 ‘/usr/local/include/’ 路径下,在程序运行之前, 保证libzlog.so在系统的动态链接库加载器可以找到的目录下:

    #vim /etc/li.so.conf
    写入:/usr/local/lib
    #ldconfig
    
    • 1
    • 2
    • 3

    4.测试
    在这里插入图片描述
    如图为我的测试目录
    main.c

    #include <stdio.h>
    #include "zlog.h"
    #include <unistd.h>
     
    int main(int argc, char** argv)
    {
            printf("%s\n",argv[0]);
    	int rc;
    	zlog_category_t *zc;
     
    	rc = zlog_init("test.conf");
    	if (rc) {
    		printf("init failed\n");
    		return -1;
    	}
     
    	zc = zlog_get_category("my_cat");
    	if (!zc) {
    		printf("get cat fail\n");
    		zlog_fini();
    		return -2;
    	} 
    	zlog_debug(zc, "%s%d","hehe",2014);
    	zlog_info(zc, "hello, zlog 2");
    	zlog_info(zc, "hello, zlog 3");
    	zlog_debug(zc, "hello, zlog 4");
            zlog_error(zc, "hello, zlog -- error");
            char hehe[]="zbyyyyyy";
            zlog_warn(zc,hehe);
    	zlog_fini();
    	return 0;
    }
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16
    • 17
    • 18
    • 19
    • 20
    • 21
    • 22
    • 23
    • 24
    • 25
    • 26
    • 27
    • 28
    • 29
    • 30
    • 31
    • 32

    test.conf

    [global]
    strict init = true
    buffer min = 1024
    buffer max = 2048
    rotate lock file = /tmp/zlog.lock
     
    [formats]
    simple	= "%d %V %m%n"
    simple2	= "%d %V %m%n"
    simple3	= "%d %V "
     
    [rules	]
    *.=debug	>stdout;simple
    *.=info		>stdout;simple2
    *.=error	>stdout;simple3
    my_cat.info    "test.log", 1M; simple
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8
    • 9
    • 10
    • 11
    • 12
    • 13
    • 14
    • 15
    • 16

    makefile:

    all:
    	gcc main.c -o out -lzlog
    
    • 1
    • 2
  • 相关阅读:
    计算机毕业设计SSM电影票网上订票系统【附源码数据库】
    Redis概述及安装使用
    【基于 python 云计算的娱乐资讯软件 V1.0操作指导及说明书】
    【LeetCode每日一题:891. 子序列宽度之和~~~排序+数学推导】
    剑指 Offer 06. 从尾到头打印链表
    3Darray 修改array值然后保存图片
    拍照扫描怎么弄?你可以试一下这两个方法
    VN5620以太网测试——DoIP配置
    linux深入理解多进程间通信
    黑豹程序员-java语法分析入门案例(模拟代码编译器解析过程)
  • 原文地址:https://blog.csdn.net/weixin_42736510/article/details/125537378