【问题标题】:Experience using Boost.Log logging library? [closed]有使用 Boost.Log 日志库的经验吗? [关闭]
【发布时间】:2011-03-31 10:37:00
【问题描述】:

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

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

【问题讨论】:

  • 我有自己的日志系统,但我正在考虑切换,这个问题很有趣!
  • bloost.log 非常非常慢,配置起来非常复杂,它几乎没有通过审核过程,并且截至 1.47 仍未在 Boost 版本中。它是在未来几年内可能不会进入主线的库之一,所以现在 log4c 等是更好的选择。
  • 实际上,已经解释说它需要一些修复,并且当前的发布目标是今年夏天 - 废弃的库没有时间表和正在进行的存储库。此外,作者报告说用户报告了非常非常好的性能。复杂性在某些情况下很有用,如果您不需要它,您可以使用提供的简单宏。所以,我不同意你的评论。
  • 我真的希望 StackOverflow 能够停止以“不具建设性”为由关闭此类明显有用的问题。
  • 我想知道,2015年的表现如何?也许现在使用 2.0 就“OK”了?

标签: c++ boost logging boost-log


【解决方案1】:

更新:我已经用我自己的自定义日志替换了 Boost.Log,主要是因为出于各种原因我决定在我的所有项目中摆脱所有 Boost 依赖项。如果您对使用 Boost 感到满意,我猜从 Klaim's answer 判断,Boost.Log 仍然是一个有效的选择。

我在 2010 年使用 Boost.Log 的经验如下。


我已经成功地将 Boost.Log 集成到我的游戏引擎中,我只能说好话。当然,现在使用有点早,因为第 2 版将成为官方 Boost.Log 的实际版本。

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

长期以来,我一直认为 log4j/log4cxx 中的分层日志记录系统非常出色,但 Boost.Log 让我产生了不同的想法。过滤和属性更加灵活。

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

我已经编写了自己的接收器后端;一个进入游戏内控制台,一个进入一种用于更严重事件的通知系统。比我预期的要容易,只需几分钟即可启动并运行。

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

【讨论】:

    【解决方案2】:

    更新:我正在将 Boost.Log 用于游戏引擎系统,我对此非常满意。它快速、线程安全并且在您需要时非常灵活。

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


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

    所以,there are macro to ease use in simple projects 但我认为这种库主要对真正了解日志记录并希望为其应用程序构建特定架构的人有用。

    关于性能,我记得提交时存在问题,与其他(不太灵活的)日志库相比,它的速度很慢,但由于它是草稿,第一个版本尚未发布,如果你是,我不会打扰没有对时间要求严格的应用程序进行编码。

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

    更新:最近与 Boost.Log 作者的电子邮件交流导致一些数据表明 Boost.Log 显然是快速记录的绝佳替代品。

    【讨论】:

      【解决方案3】:

      我最近考虑在我开始的项目中实现一个日志系统。

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

      所以我切换到 log4cpp,我在几分钟内就启动并运行了它。我发现它优雅而轻巧,正是我所需要的。它具有与著名的 log4j & co 具有相同功能的巨大优势。日志系统,这可能是您团队合作的真正优势(通过配置文件进行配置等)

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

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

      很遗憾,我没有尝试过 Boost.Log,因此无法谈论它,但如果您选择不采用 Boost.Log 方式,我希望这些反馈对您仍然有用。

      【讨论】:

        猜你喜欢
        • 2010-10-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2010-09-29
        • 1970-01-01
        • 2012-02-24
        相关资源
        最近更新 更多