我已经在Java工作了很长时间,我已经被认为是使用log4j库来记录日志.这是一个很好的,现在我正在转向C我想找到一个类似的库,用于这种语言的日志.
Chr*_*jer 24
到目前为止,我知道以下用于日志记录的库:log4c,sclog4c,syslog,zlog.
log4c被发明为C的Log4J.如果你特意寻找像"Log4J"这样的东西,因为你希望它像"Log4J",这很可能是你正在寻找的东西.
sclog4c的发明与最常用的功能java.util.logging一样简单 - 尽可能简单.如果您正在寻找"像Log4J这样的东西",因为您希望它尽可能小而简单,这很可能是您正在寻找的东西.
syslog最初由Eric Allman开发,是sendmail的一部分,已成为POSIX环境中守护程序/服务器日志记录的事实标准.它是基于客户端服务器的,通常需要记录某些内容的守护进程会将日志数据发送到在UDP端口514上侦听的syslogd.如果您特意查找"Log4J之类的东西",因为您实际上想要记录守护进程或服务器,这很可能是你正在寻找的.
这个被发明成像log4c,只是 - 根据它的描述 - 同时更小,更灵活.
由于C链接,思考和工作的方式不同,我不会寻找在一般情况下功能强大的日志框架 - 与Java不同.如果你想要"完整的桌面应用程序"以及更高版本,使用像Java这样的强大框架进行日志记录肯定是一个很好的方法.如果您正在实现命令行工具或类似工具,我敢打赌精益框架更好 - 为什么您只想为了记录而依赖lib2xml ...
如果速度相应.由于某些原因,不浪费周期对您很重要,请查找一个日志框架,该框架在评估其他参数之前使用宏来评估日志级别.
缺点是您无法使用具有副作用的参数调用日志例程.但无论如何,这不应该是一个用例.如果因为包含副作用而无法忽略日志语句,那将是惊人的.
好处是这样一个框架中的日志语句添加了很少的循环,它们几乎不存在 - 只是访问全局,检查和条件分支,跳过其余的日志代码 - 2条指令,1个循环当今许多CPU的最佳案例.
我是sclog4c的作者.