有使用Boost.Log日志记录库的经验吗?[关闭]


88

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

我正在考虑的其他库是Apache log4cxx(安装起来很繁琐,但我的团队成员希望入门简单)和Pantheios(相同的问题,因为它可与额外的前端和后端配合使用)。


我有自己的日志记录系统,但是我正在考虑切换,这样一个有趣的问题!
Cedric H.

21
bloost.log非常慢,配置复杂,几乎没有通过审核过程,并且截至1.47为止,Boost版本中还没有。它是那些可能在未来几年内不成为主线的库中的一个,因此目前log4c等是更好的选择。

4
实际上,已经解释了它需要一些修复,当前的发布目标是今年夏天-被放弃的图书馆没有时间表和在进行中的存储库。另外,作者已经报告用户报告了非常非常好的性能。复杂性在某些情况下很有用,如果您不需要它,则可以使用提供的简单宏。因此,我不同意您的评论。
Klaim

40
我真的希望StackOverflow会停止关闭诸如“不是建设性的”之类的明显有用的问题。
2013年

6
我想知道2015年的表现如何?也许现在使用2.0是“确定”?
Vincas Dargis 2015年

Answers:


41

更新:自编写此代码以来,我用自己的自定义日志记录替换了Boost.Log,主要是因为出于各种原因,我决定摆脱所有项目中的所有Boost依赖项。如果您对使用Boost感到满意,那么根据Klaim的回答判断,Boost.Log仍然是一个有效的选择。

接下来是2010年我对Boost.Log的经验。


我已经成功集成了Boost.Log到我的游戏引擎中,我只能说些好话。当然,现在使用还为时过早,因为版本2将是实际的版本,它将成为官方的Boost.Log。

请注意,没有维护可用的版本“ 1.0”。要接收更新,您必须使用前沿版本(中继版),该版本可能会变得不稳定。如果要在任何严肃的项目中使用此版本,请考虑到这一点。如果您不害怕使用最新的版本或将来的破损,那就去吧。使用起来非常好,因为它处于当前状态。

我一直认为log4j / log4cxx中的分层日志记录系统是上乘的,但是Boost.Log让我反省了。过滤和属性更加灵活。

前端/后端分开的接收器设计使添加其他后端非常容易。无需担心前端处理的同步问题或筛选。该库还已经带有许多后端,旋转文件,控制台,系统日志,Windows事件寄存器等。

我已经编写了自己的接收器后端;一个进入游戏控制台,另一个进入通知系统,处理更严重的事件。比我预期的要容易,它仅需几分钟就可以启动并运行。

最后但并非最不重要的一点是,维护人员/开发人员也非常有帮助。您将在项目论坛中获得大量帮助。就在我报告的这个周末,他修复了两个错误(其中一个重大错误):-)


21

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

今年(2013年)的下一个版本中,所有Boost库都应提供Boost.Log。


Boost.Log用于在其上设置日志系统。如果阅读了文档,您会发现它是如此灵活,以至于您可以想到的任何日志记录系统都可以用它来构建(例如,在远程计算机上进行记录)。

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

关于性能,我记得提交时存在一些问题,与其他(较不灵活)的日志记录库相比,它变慢了,但是由于它只是草稿,而且第一个发行版尚未发布,如果您不编写代码,我不会打扰。时间紧迫的应用程序。

最后,我认为它太“新”了而不能被“现在”评估。没有其他日志记录库可以像此库一样灵活,而且我不确定是否会有很多人会觉得需要使用它。

更新:最近与Boost.Log作者的电子邮件交换产生了一些数据,这些数据表明tat Boost.Log显然是快速记录的理想替代方法。


7

最近,我研究了在一个我正在开始的项目中实施日志记录系统。

正如您提到的,我尝试过log4cxx,安装确实非常繁琐。我花了几个小时才能在VS2012下(与其他依赖库...)进行编译,然后在项目中使用它时便崩溃了。当然,标准库不匹配的情况有些奇怪,但无法弄清楚。

因此,我切换到log4cpp,并在几分钟内启动并运行。我发现它优雅而轻巧,正是我所需要的。它具有与著名的log​​4j&co相同的功能,因此具有很大的优势。日志记录系统,这对于您的团队合作可能是一个真正的优势(通过配置文件等进行配置)

就性能而言,需要调用一个函数来检查记录器是否处于消息级别,然后调用一个函数来实际记录数据。

通过使用一些自制的宏(在消息中添加LINE&co。),log4cpp在我的项目中确实很有用。

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.