zoukankan      html  css  js  c++  java
  • 纯C日志函数库 zlog

    zlog - 纯C日志函数库 - 开源中国

    纯C日志函数库 zlog
    分享到
    新浪微博腾讯微博
    已用    +10
    收藏+92

    参加 OSC 应用开发大赛,拿 Nexus 4 手机 »

    星星之火,可以燎原

    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
  • 相关阅读:
    Flash Builder 使用
    解决谷歌地图偏移问题
    南京垃圾处理场分布图-益云地图
    在Oracle Spatial中增加Web Mercator投影坐标系
    学习和使用 Styled Layer Descriptor SLD样式文件
    jmeter安装教程
    Linux常见命令更新中...
    Python并发编程(线程队列,协程,Greenlet,Gevent)
    Python并发编程(线程,Threading模块,守护线程,gil锁,)
    Python并发编程(管道,数据共享,信号量,进程池)
  • 原文地址:https://www.cnblogs.com/lexus/p/2843376.html
Copyright © 2011-2022 走看看