开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)

很多网友来信坚持表达了在项目中应使用简单日志函数,而不喜欢日志函数库,我与之反复争论无果,不过话说回来,我也喜欢短小轻快的日志函数库,而不是融入太多功能的臃肿库,比如日志转档我还是坚持用外部shell来实现会更好,这样的日志函数库既可以小很多,也可以更轻快稳定,我只是迫于另外一批功能控网友的“威胁”而加入了太多的功能,他们喜欢极端的一揽子解决方案,并且展示其它诸如log4c也实现了这些功能为由证明他们是正确的,如果我不实现就免谈。

最近在研发一个小型的应用服务器平台tcpdaemon,里面需要日志功能,但整个tcpdaemon代码很少,比iLOG3小的多,于是让我想到最上面的那些网友的话,经过反复考量,我决定给我的iLOG3补充一点小鬼灵精怪——附带一个单独的迷你型的简单日志函数,这样大家终于都满足了吧。

src/新增LOGC.h,LOGC.c,这两个源文件不编译进libiLOG3.so,而是独立出来提供喜欢简单日志函数而反感日志函数库的朋友单独复制到他的项目中去直接源码包含使用。比如tcpdaemon项目

tcpdaemon-1.1.0/

src/

tcpdaemon.h

main.c

tcpdaemon.c

worker.c

LOGC.h

LOGC.c

...

在iLOG3的test目录中有测试案例test_logc.c

#include "../src/LOGC.h"

int test_logc()

{

char buf[ 64 + 1 ] ;

long buflen ;

SetLogFile( "%s/log/test_logc.log" , getenv("HOME") );

SetLogLevel( LOGLEVEL_INFO );

DebugLog( __FILE__ , __LINE__ , "call DebugLog" );

InfoLog( __FILE__ , __LINE__ , "call InfoLog" );

WarnLog( __FILE__ , __LINE__ , "call WarnLog" );

ErrorLog( __FILE__ , __LINE__ , "call ErrorLog" );

FatalLog( __FILE__ , __LINE__ , "call FatalLog" );

memset( buf , 0x00 , sizeof(buf) );

buflen = sizeof(buf) - 1 ;

DebugHexLog( __FILE__ , __LINE__ , buf , buflen , "call DebugHexLog" );

InfoHexLog( __FILE__ , __LINE__ , buf , buflen , "call InfoHexLog" );

WarnHexLog( __FILE__ , __LINE__ , buf , buflen , "call WarnHexLog" );

ErrorHexLog( __FILE__ , __LINE__ , buf , buflen , "call ErrorHexLog" );

FatalHexLog( __FILE__ , __LINE__ , buf , buflen , "call FatalHexLog" );

return 0;

}

int main()

{

return -test_logc();

}

编译时只需把LOGC.c一起编译链接即可

$ gcc -g -fPIC -O2 -Wall -Werror -fno-strict-aliasing -I. -c test_logc.c

$ gcc -g -fPIC -O2 -Wall -Werror -fno-strict-aliasing -I. -c ../src/LOGC.c

$ gcc -g -fPIC -O2 -Wall -Werror -fno-strict-aliasing -o test_logc test_logc.o LOGC.o -lpthread

$ ./test_logc

$ cat $HOME/log/test_logc.log

2014-07-20 22:35:12.890000 | INFO | 1556:3284:test_logc.c:12 | call InfoLog

2014-07-20 22:35:12.906000 | WARN | 1556:3284:test_logc.c:13 | call WarnLog

2014-07-20 22:35:12.906000 | ERROR | 1556:3284:test_logc.c:14 | call ErrorLog

2014-07-20 22:35:12.906000 | FATAL | 1556:3284:test_logc.c:15 | call FatalLog

2014-07-20 22:35:12.906000 | INFO | 1556:3284:test_logc.c:20 | call InfoHexLog

0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF

0x00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

2014-07-20 22:35:12.906000 | WARN | 1556:3284:test_logc.c:21 | call WarnHexLog

0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF

0x00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

2014-07-20 22:35:12.906000 | ERROR | 1556:3284:test_logc.c:22 | call ErrorHexLog

0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF

0x00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

2014-07-20 22:35:12.906000 | FATAL | 1556:3284:test_logc.c:23 | call FatalHexLog

0 1 2 3 4 5 6 7 8 9 A B C D E F 0123456789ABCDEF

0x00000000 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000010 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000020 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

0x00000030 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 ................

很简单吧?那就赶紧下载来玩玩吧

首页传送门 : [url]http://git.oschina.net/calvinwilliams/iLOG3[/url]

源代码包doc目录中包含了用户指南和参考手册,里面有更详尽的说明

ibm ilog mysql_开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)...相关推荐

  1. 开源纯C日志函数库iLOG3快速入门(八、如果你喜欢简单日志函数甚于日志函数库)...

    2019独角兽企业重金招聘Python工程师标准>>> 开源纯C日志函数库iLOG3快速入门(八.如果你喜欢简单日志函数甚于日志函数库) 很多网友来信坚持表达了在项目中应使用简单日志 ...

  2. 开源纯C日志函数库iLOG3快速入门(五、与随手写的简单写日志函数的比较)

    2019独角兽企业重金招聘Python工程师标准>>> 前几天看到一个网友的评论:"这种一般自己实现个用用就行了 没必要整第三方库". 的确,很多个人或公司都自己 ...

  3. 【完结】12大深度学习开源框架(caffe,tf,pytorch,mxnet等)快速入门项目

    这是一篇总结文,给大家来捋清楚12大深度学习开源框架的快速入门,这是有三AI的GitHub项目,欢迎大家star/fork. https://github.com/longpeng2008/yousa ...

  4. java 写日志太快_Log4j2 快速入门 —— 定期/定大小生成日志文件(三)

    Log4j2 对于生成日志文件时,可以通过对中的进行设置,来完整日志文件各种生成方案 定期生成日志文件 log4j2.xml user/logs filePattern="${LOG_HOM ...

  5. mysql 5.6开启binlog_docker快速入门02——在docker下开启mysql5.6 binlog日志

    1.检查容器状态 1 [root@localhost ~]# docker ps 执行这个命令可以看到所有正在运行当中的容器,如果加上-a参数,就可以看到所有的容器包括停止的. 我们可以看到容器正在运 ...

  6. 【快速入门大数据】Hadoop项目实战-用户行为日志

    文章目录 用户日志 用处 日志生成渠道 日志内容 意义 离线数据处理架构 分析日志 引入解析UserAgent 单体实现 hadoop-MapReduce实现 效果图 总结 用户日志 用处 分析行为 ...

  7. 其他主流开源硬件简介BeagleBone Black快速入门

    其他主流开源硬件简介BeagleBone Black快速入门 1.3 其他主流开源硬件简介 开源硬件种类繁多,但主要有两款开源硬件常与BeagleBone比较.它们就是Arduino和Raspberr ...

  8. 开源分布式中间件 DBLE 快速入门指南

    2019独角兽企业重金招聘Python工程师标准>>> 环境准备 DBLE项目资料 DBLE官方网站:https://opensource.actionsky.com 可以详细了解D ...

  9. python快速入门【四】-----各类函数创建

    python入门合集: python快速入门[一]-----基础语法 python快速入门[二]----常见的数据结构 python快速入门[三]-----For 循环.While 循环 python ...

最新文章

  1. 简易快速的开发,需要一个快速开发平台来支持
  2. python 30分钟_Python 30分钟入门指南
  3. MTV: Django眼中的MVC
  4. Spring–添加AOP支持
  5. Android应用基础知识(4)---Android处理运行时变更
  6. 计算机二级b5纸是多大尺寸,两张b5纸是多大
  7. bootstrap 固定最底部_防腐木立柱怎么固定
  8. golang ide 下载
  9. 文本分析-预处理:Python文本分析工具NLTK
  10. Python数据分析(4):jieba分词详解
  11. igbt原理动画演示视频_简单易懂的IGBT工作原理分析
  12. Redis穿透、击穿、雪崩解决方案
  13. 大学四年因为读了这13本书,我成了别人眼中的大神!
  14. Python+Selenium实现网页截图
  15. android开发底部虚拟键,android手机底部的虚拟按键怎么弄,像android平板那样。
  16. 2020李宏毅学习笔记——15.Recurrent Netural Network 上
  17. HTTPS学习笔记:(3)一文彻底了解PKI与证书
  18. rust提示游戏安全违规_RUST 游戏启动不了 每次都是 Rust Launcher Error: Loading Error - Start Service failed (1450)...
  19. Zabbix介绍及部署
  20. windows批量移动文件bat脚本

热门文章

  1. 能力不错的大厂高 P,为什么过不了小厂的试用期?
  2. @程序员,为你揭开直播技术的神秘面纱!
  3. 以太坊 2.0、分片、DAG、链下状态通道……概述区块链可扩展性的解决方案!
  4. 一个空格引发的“惨案“
  5. Github 开源趋势榜 TOP 1:英伟达升级发布二代 StyleGAN!
  6. AI 六十年,强人工智能何时到来?
  7. 三大运营商回复 4G 降速;微信上线语音转文字功能;IntelliJ IDEA 2019.2.1 发布 | 极客头条...
  8. 程序员必备神卡!仅500张,价值万元0.8折抢!4个月小白变大牛!(送机械键盘)
  9. 这才是你寻寻觅觅想要的 Python 可视化神器!
  10. 100% 的程序员都想挑战的算法趣题!