使用Boost.Log日志库的经验?

ami*_*mit 88 c++ logging boost boost-log

我正在考虑开始使用Boost.Log日志库.有人使用Boost.Log吗?请分享您在这方面的经验.

我正在考虑的其他库是Apache log4cxx(安装起来似乎很乏味,但我的队友想要一些简单易用的东西)和Pantheios(同样的问题,因为它适用于额外的前端和后端).

Osk*_* N. 41

更新:我已经用自己的自定义日志记录替换了Boost.Log,主要是因为我决定出于各种原因摆脱所有项目中的所有Boost依赖项.如果你使用Boost你没问题,我猜Boost.Log仍然是一个有效的选择,根据Klaim的回答判断.

我在2010年的Boost.Log经历如下.


我已经成功地在我的游戏引擎中集成了Boost.Log,我只能谈论它的好东西.当然,它使用起来有点早,因为版本2将是将成为官方Boost.Log的实际版本.

请注意,未维护版本"1.0".要接收更新,您必须使用可能变得不稳定的前沿(主干)版本.如果您要在任何严肃的项目中使用此版本,请考虑这一点.如果你不害怕使用尖端版本或未来的破损,那就去吧.使用非常好,因为它处于当前状态.

我一直认为log4j/log4cxx中的分层日志系统是优越的,但是Boost.Log让我想到了.过滤和属性更灵活.

由前端/后端分隔的接收器设计使得添加额外后端变得非常容易.无需担心前端处理的同步问题或过滤.该库还带有许多后端,旋转文件,控制台,syslog,Windows事件寄存器等.

我写了自己的水槽后端; 一个进入游戏内控制台,一个进入一种通知系统,用于更严重的事件.比我想象的要容易,只需几分钟就可以运行起来.

最后但并非最不重要的是,维护者/开发人员也非常有帮助.您将在项目论坛中获得大量帮助.他刚刚在本周末报道了两个错误(一个主要的错误):-)


Kla*_*aim 21

更新:我正在使用Boost.Log进入游戏引擎系统,我对它非常满意.它是快速的,线程安全的,并且在您需要时非常灵活.

Boost.Log应该在今年(2013年)即将发布的版本中提供所有Boost库.


Boost.Log用于在其上设置日志系统.如果您阅读文档,您会发现它非常灵活,任何日志记录系统都可以使用它来构建(比如登录远程计算机).

因此,有一些宏可以简化在简单项目中的使用,但我认为这种库对于那些真正了解日志记录并希望为其应用程序构建特定体系结构的人来说非常有用.

关于性能,我记得在提交时出现了问题,与其他(灵活性较差)的日志库相比,它变慢了,但因为它是草稿而且第一个版本还没有出来,如果你不编码,我就不会打扰了时间关键的应用.

最后,我认为"现在"评估它太"新"了.没有其他日志库像这个一样灵活,我不确定是否会有很多人觉得需要使用它.

更新:最近与Boost.Log作者进行的电子邮件交换导致一些数据表明,Boost.Log显然是快速记录的绝佳选择.


Mic*_*Mic 7

我最近考虑在我正在开始的项目上实施日志系统.

我提到它时尝试了log4cxx,安装确实非常繁琐.我需要花几个小时才能在VS2012下编译它(与其他依赖库...),然后当我在我的项目中使用它时它就崩溃了.当然,标准库不匹配会发生一些奇怪的事情,但无法弄清楚.

所以我切换到了log4cpp,我在几分钟内就开始运行了.我发现它优雅轻巧,正是我所需要的.它具有与众所周知的log4j&co具有相同功能的巨大优势.记录系统,这可能是您团队合作的真正优势(通过配置文件配置等)

就性能而言,它需要一个函数调用来检查记录器是否对消息级别是活动的,然后是一个函数调用来实际记录数据.

使用一些自制的宏(将LINE和co.添加到消息中),log4cpp在我的项目中确实非常有用.

不幸的是,我没有尝试Boost.Log所以不能谈论它,但我希望如果您选择不采用Boost.Log方式,这些反馈对您仍然有用.