首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >有没有C语言的日志库?(就像C语言的log4j )

有没有C语言的日志库?(就像C语言的log4j )
EN

Stack Overflow用户
提问于 2013-07-19 16:11:04
回答 3查看 20.3K关注 0票数 22

我已经在Java语言中工作了很长一段时间,我已经习惯于使用log4j库来记录日志。这是一个很棒的库,现在我要转到C语言,我想看看在这种语言中是否有类似的日志库。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2014-12-19 01:12:54

到目前为止,我知道以下用于日志记录的库: log4c、sclog4c、syslog和zlog。

log4c

log4c是为了成为C语言的Log4J而发明的。如果你特别想找“像Log4J这样的东西”,因为你想让它像" Log4J“,那么这很可能就是你要找的东西。

链接

sclog4c

发明sclog4c的目的是让它和java.util.logging最常用的特性一样简单--尽可能简单。如果你正在寻找“像Log4J一样的东西”,因为你想让它尽可能的小和简单,这很可能就是你想要的。

链接

系统日志

syslog最初是由Eric Allman作为sendmail的一部分开发的,现在已经成为POSIX环境中守护程序/服务器日志记录的事实标准。它是基于客户端-服务器的,通常希望记录日志的守护程序会将日志数据发送到监听UDP端口514的syslogd。如果您因为实际想要记录一个守护进程或服务器而专门查找“类似Log4J的内容”,那么这很可能就是您要查找的内容。

链接

zlog

这个被发明出来就像log4c一样,只是--根据它的描述--同时更小,更灵活。

链接

其他

能力vs.精益

由于C语言连接、思考和工作方式的不同,我不会去寻找在一般情况下功能强大的日志记录框架--不像Java。如果您要开发“成熟的桌面应用程序”甚至更多,那么使用功能强大的框架(如Java )进行日志记录无疑是一种不错的选择。如果您正在实现命令行工具或类似工具,我敢打赌精益框架会更好--为什么您要仅仅为了日志记录而依赖lib2xml……

速度

以防速度下降。出于某些原因,不浪费周期对你很重要,在评估其他参数之前,寻找一个使用宏来评估日志级别的日志记录框架。

缺点是您不能使用有副作用的参数调用日志例程。但不管怎样,这不应该是一个用例。如果日志语句不能因为包含副作用而被忽略,那将是令人惊讶的。

优点是,这样的框架中的日志语句添加的周期太少,以至于它们几乎不存在-只需访问全局、检查和条件分支,跳过其余的日志代码-2条指令,在当今的许多CPU上,最好的情况是1个周期。

免责声明

我是sclog4c的作者。

票数 35
EN

Stack Overflow用户

发布于 2013-07-19 16:16:04

有一个模仿log4j log4c库的Java库。从log4c文档中:

它模仿Log for Java库,在合理的情况下尽可能接近他们的

票数 3
EN

Stack Overflow用户

发布于 2015-12-01 17:29:56

另一个要考虑的选项是zf_log

  • 调试日志记录在发布版本(编译出来)中减少为无操作当消息未记录时不评估
  • 参数
  • 对于日志语句中使用的变量没有“未使用”警告仅
  • 将内存区域记录为十六进制和ASCII
  • Optional内置支持安卓日志和苹果系统日志(iOS、OS X)

<代码>H112自定义输出函数(文件、系统日志等)<代码>H213<代码>F214<代码>

例如,将输出INFO日志消息:

代码语言:javascript
复制
ZF_LOGI("Number of arguments: %i", argc);

它将如下所示:

代码语言:javascript
复制
04-29 22:43:20.244 40059  1299 I hello.MAIN main@hello.c:9 Number of arguments: 1

精确的表示是可配置的,并且取决于构建类型(调试/发布)。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17741163

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档