免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 7948 | 回复: 13
打印 上一主题 下一主题

c程序中打log的库 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-05-08 18:09 |只看该作者 |倒序浏览
敢问在有没有c语言的库是专门用来写log的呀?
我需要的功能是日志分级,线程安全,指定日志文件
我查了一下,有些说直接用syslog,syslog能否按日志级别的不同,将日志输出到不同的log文件中么?

论坛徽章:
0
2 [报告]
发表于 2012-05-09 11:01 |只看该作者
C的就没有用过,不过这种东西,自己实现一个就可以了,又不麻烦

论坛徽章:
0
3 [报告]
发表于 2012-05-09 11:07 |只看该作者
自己实现吧。没有现成的

论坛徽章:
0
4 [报告]
发表于 2012-05-09 12:23 |只看该作者
日志的需求太多样化了。java那边的log4j实际上只适合于企业开发。c/c++的应用领域远超企业开发,所以很难写一个满足所有人的log库。

如果考虑syslog的话,那不如用syslog-ng,性能好很多。

建议自己写文件,或者用pipe写cronolog。

论坛徽章:
0
5 [报告]
发表于 2012-05-09 12:42 |只看该作者
自己写的话有哪些需要注意的地方呢?
比如IO操作的性能能问题有哪些值得注意的?

谢谢

论坛徽章:
0
6 [报告]
发表于 2012-05-09 12:47 |只看该作者
本帖最后由 wwwsq 于 2012-05-09 12:48 编辑
mdou1986 发表于 2012-05-09 12:42
自己写的话有哪些需要注意的地方呢?
比如IO操作的性能能问题有哪些值得注意的?



1,保存文件句柄反复使用
2,文件读写失败的时候尝试再次打开文件
3,最好提供两个write_log函数,一个调用fflush(),一个不调用。或者给write_log加个参数bFlushNow,缺省为true。
4,找个scoped_lock,然后进入log函数的时候scoped_lock  lock(&g_log_mutex);
5,log失败的时候不要printf,会有各种问题(#ifdef _DEBUG的时候才可以用printf)

论坛徽章:
0
7 [报告]
发表于 2012-05-09 12:51 |只看该作者
wwwsq 发表于 2012-05-09 12:47
1,保存文件句柄反复使用
2,文件读写失败的时候尝试再次打开文件
3,最好提供两个write_log函数, ...


十分感谢

论坛徽章:
0
8 [报告]
发表于 2012-05-09 20:39 |只看该作者
也在考虑这个事情,以前也是弄个文件写写, 现在有个新思路, 说出来,大家看看

弄个日志服务器来干这个事, 当然用unix管道(?)来实现这个, 网络当然也支持。

反正直接记文件要弄个FILE *,  跟一个fd一样。  

好处吗 就是可以把日志文件可以弄很多规则, 比如一天一个文件, 一个文件多大,
否则日志文件转换很麻烦, 每次记日志都要判断, 感觉程序不够顺溜
弄成服务器后顺利解藕, 而且日志非常多的话,把队列弄长, 可以避免原来直接记文件,如果磁盘慢,要等待的问题。

大家怎么看

论坛徽章:
0
9 [报告]
发表于 2012-05-09 21:35 |只看该作者
一定要用C的话,只能自己实现一个,或者用syslog。

但是如果我来做的话,最希望直接调用python;对于这种边缘性的东东,不想从无到有的折腾。


------------------------------------
欢迎光临我的博客:www.danoking.com [DNK的博客]

论坛徽章:
0
10 [报告]
发表于 2012-05-09 23:18 |只看该作者
freebarque 发表于 2012-05-09 20:39
也在考虑这个事情,以前也是弄个文件写写, 现在有个新思路, 说出来,大家看看

弄个日志服务器来干这个 ...



有syslog-ng已经做了类似的系统。这样做有一些局限,你可以参考一下syslog-ng的相关资料。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP