1、zlog的下载、编译与安装

git clone https://github.com/HardySimpson/zlog.git

vim src/makefile

设置安装路径PREFIX

设置工具链CC

编译问题:

relocation R_X86_64_PC32 against symbol `zlog_conf_del'......recompile with –fPIC

解决方法:REAL_CFLAGS之前增加CFLAGS += -fPIC

make

make install

2、使用手册

http://hardysimpson.github.io/zlog/UsersGuide-CN.html

3、参考配置

[global]
strict init = true
reload conf period = 0buffer min = 1024
buffer max = 2MBrotate lock file = self
default format = "%d(%F %T.%l) %-6V (%c:%F:%L) - %m%n"file perms = 666
fsync period = 1K[levels]
#TRACE = 10
#CRIT = 130, LOG_CRIT[formats]
simple = "%m%n"
normal = "%d [%V] [%U:%L] %m%n"[rules]
test.*          >stdout; normal
test_log.*      "./test.log", 1KB*4 ~ "./test-%d(%Y%m%d).#2s.log"; normal

4、参考demo

#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include "zlog.h"int main(int argc, const char *argv[])
{int rc;zlog_category_t *c;rc = zlog_init("./zlog.conf");//初始化if (rc) { printf("init failed\n");return -1; }c = zlog_get_category("test_log");//获取test_log分类和对应的规则if (!c) {printf("zlog_get_category failed\n"); zlog_fini();return -2; }int i = 7;zlog_info(c, "abcdecghilklmnopqrstuvwxyz:%d", i);//写日志zlog_fini();//清理return 0;
}

5、说明

[rules]

test_log.DEBUG    "./test.log", 1KB*4 ~ "./test-%d(%Y%m%d).#2s.log"; normal

test_log:分类

DEBUG:日志等级

"./test.log", 1KB*4 ~ "./test-%d(%Y%m%d).#2s.log"; normal:具体规则

"./test.log":日志保存路径

1KB:每个日志文件的大小

4:最多保存4个日志文件

"./test-%d(%Y%m%d).#2s.log":文件转档设置(当日志文件满1KB时进行转档保存)

normal:设置的日志输出格式

6、zlog进阶

自定义输出

#include <stdio.h>
#include <stdlib.h>
#include "zlog.h"#define ZLOG_CONFIG_PATH "./zlog.conf"zlog_category_t *errorCat = NULL;int zlogApi_Error(zlog_msg_t *msg)
{printf("\033[40;31m");//printf("[%s][%s][%ld]\n", msg->path, msg->buf, (long)msg->len);printf("%s", msg->buf); printf("\033[0m"); return 0;
}int zlogApi_reload(void)//重载配置
{return zlog_reload(ZLOG_CONFIG_PATH);
}//signal(SIGUSR1, zlogApi_reloadSignalHandler);
//注册用户信号,用于重置配置
//kill -USR1 pid
void zlogApi_reloadSignalHandler(int sig)
{//printf("reload signal:%d\n", sig);zlogApi_reload();
}int zlogApi_init(void)
{int ret = 0;ret = zlog_init(ZLOG_CONFIG_PATH);if (ret) { printf("zlog_init failed\n");return -1; }zlog_set_record("myError", zlogApi_Error);errorCat = zlog_get_category("myErrorCat");if (!errorCat) {printf("zlog_get_category errorCat failed\n"); zlog_fini();return -2; } return 0;
}void zlogApi_deInit(void)
{zlog_fini();
}
#ifndef _ZLOG_API_H_
#define _ZLOG_API_H_#include "zlog.h"extern zlog_category_t *errorCat;#define  My_Zlog_Error(fmt...)  zlog_error(errorCat, fmt)int zlogApi_reload(void);
void zlogApi_reloadSignalHandler(int sig);
int zlogApi_init(void);
void zlogApi_deInit(void);#endif
[formats]
simple = "%m%n"
format01 = "%d [%V] [%U:%L] %m%n"
format02 = "[%V] [%U:%L] %m%n"[rules]
myErrorCat.*    $myError, ""; format02#myErrorCat.*   "./my.log", 1KB*2 ~ "./my-%d(%Y%m%d).#2s.log"; format01#myErrorCat.*    "/dev/null"#通过注释规则和重载配置来实现控制日志输出

C语言日志库zlog基本使用相关推荐

  1. 【C/C++开源库】单片机/嵌入式中的C语言日志库

    日志系统在系统开发和调整过程中的重要性,大家应该都清楚,特别是项目出问题之后,却没有日志可以帮忙定位问题,就非常令人痛苦. 因为我们不可能一直通过调试器去单步调试程序,所以设备的运行日志显得尤为重要. ...

  2. 【CC++开源库】单片机嵌入式中的C语言日志库

    日志系统在系统开发和调整过程中的重要性,大家应该都清楚,特别是项目出问题之后,却没有日志可以帮忙定位问题,就非常令人痛苦. 因为我们不可能一直通过调试器去单步调试程序,所以设备的运行日志显得尤为重要. ...

  3. Linux-C 简单的C语言日志库

    Linux-C 简单的C语言日志库 一.简述         记--C语言实现的简单的日志库,可循环覆盖滚动记录日志文件,达到限制就另记一个日志文件,可控制日志文件个数,可控制日志文件大小. 打包下载 ...

  4. Go语言日志库zerolog

    Go语言日志库zerolog 在开发大型项目时,将日志进行结构化以提高可读性.可查询性和速度是非常重要的. 为什么你选择不使用其他结构化日志库,如logrus或zap? Zerolog 是一款高性能且 ...

  5. 纯C语言日志类库 Zlog

    转自: http://hardysimpson.github.io/zlog/UsersGuide-CN.html 难易 著23 Contents Chapter 1  zlog是什么? 1.1  兼 ...

  6. go 日志库 zap

    提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录 前言 一.zap是什么? 二.使用步骤 1.基本使用 2.写入文件 前言 zap日志 Zap提供了两种类型的日志记录器-Su ...

  7. go语言 gin框架中集成zap日志库

    在go语言gin框架中,日志是默认输出到终端的,但是我们在实际工作中,一般来说是需要记录服务器日志的.而最常用的日志库就是zap日志库,我们需要将gin在终端输出的内容通过zap日志库记录到文件中,首 ...

  8. 介绍一个使用 Go 语言开发的高性能可配置可扩展的日志库 logit

    这是一个使用 Go 语言开发的高性能可配置可扩展的日志库,名字叫 logit. logit 是一个高性能的日志库,从测试结果来看,比主流日志库 zap.logrus 这些要快不少. logit 支持配 ...

  9. Go 语言中的 logger 和 zap 日志库

    目录 Go 语言中的 logger 和 zap 日志库 Go Logger Zap Logger Logger Sugared Logger 定制 Logger 记录到文件中 Zap logger 中 ...

  10. 在Go语言项目中使用Zap日志库

    在Go语言项目中使用Zap日志库 Go语言原生的日志库的使用,然后详细介绍了非常流行的Uber开源的zap日志库,同时介绍了如何搭配Lumberjack实现日志的切割和归档. 一.在Go语言项目中使用 ...

最新文章

  1. java圆周率流程图,流程图、PI图入门知识 课件.doc
  2. 简单介绍--TOSCA自动化测试工具
  3. lo ate my IP address问题解决
  4. 扎心!程序员泪奔的8个瞬间
  5. 留守女孩携笔从戎,被录取为空军飞行员
  6. dz论坛连接mysql数据库_dz论坛搬家后连接数据库等教程
  7. arcgis导入坐标点转面_ArcGIS问题:如何将坐标点或者点文件转换成线、面文件
  8. 在php中使用CKEDITOR在线编辑器
  9. Windows中查找命令的路径 (类似Linux中的which命令)
  10. 移动端实现标题文字的截断
  11. 如何为自定义域使用我自己的SSL证书?
  12. gin--简单路由代码
  13. 如何安装uclient_UClient官方版下载_UClient手机官方版下载v2.0.0.1580_3DM单机
  14. 高逼格/高效率办公工具、开发工具、开发插件等各种骚操作汇总 —— [努力更新中...]
  15. Java后台生成NO2016012701(代码+年月日+流水号)这样的流水编号
  16. matlab中的对数log()使用
  17. ⑦Java SE知识点回顾与小结(面向对象)
  18. python 基础知识汇总
  19. Linux系统的简易命令(三)
  20. 【Linux记录】Linux 可以telnet通localhost,不能telnet ip,telnet localhost正常,telnet ip失败。

热门文章

  1. 小程序实现简单语音聊天
  2. c语言标准库详解(五):stdio.h之直接IO/文件定位/错误处理
  3. stdio.h 之 printf
  4. 关于stdafx.h的错误
  5. 数​据​库​查​看​内​存​使​用​I​N​F​O​R​M​I​X
  6. curl测试post请求
  7. php字符串的截取方式
  8. Python调试工具——ipdb
  9. U盘PE删除影子系统(PowerShadow),解决安装后重启蓝屏的问题
  10. spss19 视频教程下载_19个网站免费下载股票视频介绍和录像