zlog

纯C日志函数库
授权协议 LGPL
开发语言 C/C++
所属分类 程序开发、 日志工具(Logging)
软件类型 开源软件
地区 国产
投 递 者 齐阳
操作系统 跨平台
开源组织
适用人群 未知
 软件概览

星星之火,可以燎原

zlog是一个高性能、线程安全、灵活、概念清晰的纯C日志函数库。

事实上,在C的世界里面没有特别好的日志函数库(就像JAVA里面的的log4j,或者C++的log4cxx)。C程序员都喜欢用自己的轮子。printf就是个挺好的轮子,但没办法通过配置改变日志的格式或者输出文件。syslog是个系统级别的轮子,不过速度慢,而且功能比较单调。log4c异常坑爹(有内存泄漏、效率低等等),而且已经停止开发

所以我(难易)写了zlog。 

zlog有这些特性:


 *  syslog分类模型,基于规则路由过滤,比log4j模型要正确高效,详见为什么log4j的概念模型是错误的

 *  日志格式定制,类似于log4j的pattern layout

 *  多种输出,包括动态文件、静态文件、stdout、stderr、syslog、用户自定义输出函数

 *  运行时手动或自动刷新配置(同时保证安全)

 *  高性能,在我的笔记本上达到338'638条日志每秒, 大概是syslog(3)配合rsyslogd的1000倍速度 

 *  高可靠性和速度之间的平衡,用户自定义多少条日志后fsync数据到硬盘

 *  用户自定义等级

 *  多线程和多进程环境下保证安全转档

 *  精确到微秒

 *  简单调用包装dzlog(一个程序默认只用一个分类)

 *  MDC,线程键-值对的表,可以扩展用户自定义的字段

 *  自诊断,可以在运行时输出zlog自己的日志和配置状态

 *  不依赖其他库,只要是个POSIX系统就成(当然还要一个C99兼容的vsnprintf)

网友提供的其他版本,方便其他平台安装

auto tools版本: https://github.com/bmanojlovic/zlog
cmake版本:https://github.com/lisongmin/zlog
windows版本: https://github.com/lopsd07/WinZlog

  • 一、Linux日志 在Linux系统下有大量的日志,用于记录系统、程序运行中发生的各种事件,通过阅读日志,有助于诊断和解决系统故障。在开发项目时加入日志系统也会方便调试分析,找到问题。zlog是一个轻量级、高可靠性、高性能、线程安全、灵活、概念清晰的纯C日志函数库,比较适合嵌入式开发。 1、系统常用的日志(日志是用来记录重大事件的工具) /var/log/message 系统信息日志,包

  • 前言 本篇仅仅是zlog的学习笔记,有错误请指正! 一、 分类(Category)、规则(Rule)和格式(Format) 分类(Category)用于区分不同的输入。代码中的分类变量的名字是一个字符串,在一个程序里面可以通过获取不同的分类名的category用来后面输出不同分类的日志,用于不同的目的。 格式(Format)是用来描述输出日志的格式,比如是否有带有时间戳,是否包含文件位置信息等,格

  • 以下所有内容均参考自:http://hardysimpson.github.io/zlog/UsersGuide-CN.html 一、zlog是什么? zlog是一个高可靠性、高性能(笔记本上达到25万条日志每秒)、线程安全、灵活、概念清晰的纯C日志函数库。支持日志分级、切片、自定义格式等操作。 二、zlog的安装 1、#git clone https://github.com/HardySimp

  • 简介 zlog 是一个高可靠性、高性能、线程安全、灵活、概念清晰的纯 C 日志函数库。 使用 zlog 来记录程序运行时产生的 log 日志的优势是 —— 可以通过改变配置文件从而改变该 log 日志的格式或输出文件,也就是我们可以根据需要,来决定日志的格式以及分类匹配,而不必通过改动程序代码。并且日志记录可以精确到微秒、不依赖其他任何库、每秒可以记录日志条数可达万条以上,以及在程序运行时输出 z

  • Contents 1 zlog是什么? 5 1.1 兼容性说明. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6 1.2 zlog 1.2 发布说明. . . . . . . . . . . . . . . . . . . . . . . . . . . 6 2 zlog不是什么? 9 3 Hello World 11 3

  • 移植zlog开发日志。 zlog的下载、编译与安装 git clone https://github.com/HardySimpson/zlog.git //下载源码包 cd zlog //进入工程目录 mkdir build_linux build_arm //创建文件夹用于存放工程输出内容 vim src/makefile //修改makefile中的PREFIX为自己创建的目录build_a

  • 原创:https://blog.csdn.net/u010505080/article/details/84819042 一、编译zlog日志工具 zlog的官网http://hardysimpson.github.io/zlog/ zlgo github源码下载网https://github.com/HardySimpson/zlog/releases 有网友提供了如下版本,方便其他平台上安装编

  • zlog 简易手册 源码下载 开发版本 如果以研究学习为目的,或者希望尝试最新特性,又或者希望参与到 zlog 的开发中,可以直接从 Github 主页上拉取最新源码,拉取命令: git clone https://github.com/HardySimpson/zlog.git 技巧:在 github 页面点击右上角的 Code 按钮获取 git clone 链接。 发行版本(建议) 如果以商

  • 1、前言 具体使用直接参考https://github.com/HardySimpson/zlog的“README.md”文件或者“doc/GettingStart-CN.txt”(README.md的中文版),还有以下两篇文章: http://hardysimpson.github.io/zlog/UsersGuide-CN.html https://blog.csdn.net/fangye94

  • zlog源码包下载地址https://github.com/HardySimpson/zlog  zlog使用手册http://blog.csdn.net/yangzhenzhen/article/details/8439459 转载于:https://www.cnblogs.com/LiuYanYGZ/p/5838424.html

  • 一、日志系统模块基础 收集日志 日志管理的第一件事,就是日志的收集。日志收集是开发者必备的技巧,不管是哪个开发语言,哪个开发平台,日志收集的插件都是有很多选择的。例如: .net 平台大家钟爱的log4net,支持多种存储方式(文件、数据库),多种格式,多种日志拆分方式。 java 平台主流的log4j、slf4j、logback,多种选择。 日志收集的组件这里就不一一说明了,使用都是很简单的,这

  • 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 解决方法:R

  • 源码下载 https://github.com/HardySimpson/zlog/releases 编译安装源码 $ ./configure --prefix=/opt/armlib_mipsel/libzlog --host=mipsel-openwrt-linux CC=mipsel-openwrt-linux-gcc $ make $ make install prefix:安装路径设

  • 原创: 一、编译zlog日志工具 zlog的官网http://hardysimpson.github.io/zlog/ zlgo github源码下载网https://github.com/HardySimpson/zlog/releases 有网友提供了如下版本,方便其他平台上安装编译,非常感谢! auto tools版本: https://github.com/bmanojlovic/zlog

  • zlog开源日志库的ARM交叉编译 zlog简介 zlog是一款国人写的开源的Linux下的日志库,用C语言编写,通用性很好,我们嵌入式Linux项目就使用这款开源库作为日志模块。简单记录一下交叉编译的过程,其它开源库或开源软件编译过程也是大同小异。 下载 从github的项目主页上下载即可,网址是(https://github.com/HardySimpson/zlog.git),下载源码到本地

  • 参考以下: https://www.cnblogs.com/fortunely/p/16685269.html 使用手册 https://download.csdn.net/download/weixin_44618297/86745722 通用配置文件 #comments [global] strict init = true #如果"strict init"是true,zlog_in

 相关资料
  • 我正在学习面向对象的C,并有一个关于虚拟/纯虚拟和多级继承的问题。 假设我有这样的简单代码: 我的理解是,除非getWidth被指定为虚拟,否则多态将使用“Base”类的函数。我的意思是r-的最终调用 在这种情况下,我注意到如果我删除Shape中的纯虚拟声明,我们会得到我刚才描述的行为。在基类中有一个纯虚函数会自动使该函数的所有定义都是虚的吗?

  • 什么是纯函数? 在函数式编程里我们会经常谈到这两个概念。一个是 纯函数。另一个是 附加作用(副作用)。这里我们就结合实际来介绍一下 纯函数 和 附加作用。 下面我们给出两个函数 increaseA 和 increaseB,他们其中一个是 纯函数,另一个不是 纯函数: var state = 0 func increaseA() { state += 1 } increaseA() p

  • 在 C++中,可以将虚函数声明为纯虚函数,语法格式为: virtual 返回值类型 函数名 (函数参数) = 0; 纯虚函数没有函数体,只有函数声明,在虚函数声明的结尾加上 ,表明此函数为纯虚函数。 最后的 并不表示函数返回值为0,它只起形式上的作用,告诉编译系统“这是纯虚函数”。 包含纯虚函数的类称为抽象类(Abstract Class)。之所以说它抽象,是因为它无法实例化,也就是无法创建对象。

  • 我正在使用一组持久的函数来完成一些关键的后端逻辑和操作,我希望它们在同一个文件中写入日志,这样我就可以进行更好的分析。对了,我知道我正在使用log.information方法注入的ILog实例,但是每个函数都编写自己的日志文件。 我也在使用application insights,但由于遥测采样,文件中的信息比application insights要多得多。 以下是我的host.json文件的示

  • 本文向大家介绍C++中虚函数与纯虚函数的用法,包括了C++中虚函数与纯虚函数的用法的使用技巧和注意事项,需要的朋友参考一下 本文较为深入的分析了C++中虚函数与纯虚函数的用法,对于学习和掌握面向对象程序设计来说是至关重要的。具体内容如下: 首先,面向对象程序设计(object-oriented programming)的核心思想是数据抽象、继承、动态绑定。通过数据抽象,可以使类的接口与实现分离,使

  • 如果一个函数的返回结果只取决于参数值,并且没有像修改参数、输出一些值等副作用,那么就可认为此函数是纯函数。 下面这个after函数就是一例。此函数比较两个Time变量并返回一个布尔值并指出第一个操作数是否比第二个晚: bool after (Time& time1, Time& time2) { if (time1.hour > time2.hour) return true; i