2009-11-15 126 views
50

我正在寻找一个C++日志框架,具有以下特点:C++日志框架建议

  • 日志的严重性(信息,警告,错误,严重等)
  • 日志被贴上了模块名称
  • 框架具有UI(或CLI)来配置我们将实际记录到哪个模块的文件以及日志写入文件所需的最低严重程度。
  • 有一个观众,它可以让我的每个模块,严重性,模块名称,错误名称搜索等
+0

没有答案,但我找过相同的东西,有时并没有找到一个喜欢。 – 2009-11-15 01:55:35

+0

使用来自apache的log4cxx ... – pankajt 2009-11-15 06:02:09

+0

进程ID和线程ID证明对于多线程应用程序非常有用。 – madrag 2013-10-30 23:58:14

回答

9

不知道有关从UI或CLI配置。我已经在某个点或其他地方使用了这两种日志框架。

https://sourceforge.net/projects/log4cplus/
https://logging.apache.org/log4cxx/index.html

它不会是太难基于驱动器上的配置文件,可以用手工或通过快速和肮脏的GUI或命令行应用程序编辑你的日志。可能有点难以动态调整,但不是太糟糕。

更新:

它看起来像提出Boost.Log现在在Boost 1.54是在一个稳定的版本。如果你已经在使用Boost,那么我会看看它。

+23

我不喜欢那些图书馆。他们有内存泄漏。而log4cxx需要5个其他的Apache的东西才能建成。 – 2010-02-24 15:52:18

+2

@m_pGladiator你可以扩展他们如何/他们在哪里泄漏?甚至是一些显示它的资源的链接(错误报告...)? – Dennis 2016-01-20 13:42:50

5

没有查看器,但你可以尝试pantheios。我已经使用了近一年了,对此我感到非常满意。

1

您可以使用wxWidgets并使用它的优秀class进行记录。这相当简单直接。例如,您可以创建一个收集所有日志的对话框(例如wxLogError,wxLogMessage,wxLogDebug等)。

3

如果您关心性能,我建议您查看Pantheios。特别是它有very high performance,它可以与其他日志记录库结合使用 - 它可以作为日志库(如log4cxx)和应用程序代码之间的高效且类型安全的层。

4

我强烈建议Pantheios,因为它是唯一一个完全类型安全的,也是very efficient。它在选择正确的“前端”和“后端”时对用户施加了一点工作,但是一旦你有了它的工作,你就可以修复并忘记。

它不提供完善的日志记录功能 - 例如,滚动文件 - 但这是by design,因为它旨在与其他具有更多功能(但性能/类型安全性较差)的日志记录库结合使用。

+2

声称它是“唯一”的类型安全日志库似乎有点夸大其辞。你可以用一些信息来支持它吗? – 2015-11-21 13:59:19

0

是一个很好的候选人,但我个人的偏好是P7库。 我的内部测试(CPU i7-4870HQ,SSD)显示P7比Pantheios更快。

  • Pantheios写入每秒1.8M日志行(时间&文本消息)
  • P7写入2。每秒4M日志行(时间,线程,CPU核心,函数,文件,行和文本信息)
+0

你可以扩展它的用途吗?你有没有P7的痛点?该开发从谷歌代码转移,但没有被放到另一个平台(例如GitHub,BitBucket等),任何想法为什么?它看起来不错,但我担心项目的沟通和可见性。 – Dennis 2016-01-19 14:56:56

+0

**用途**:时间关键型应用程序,嵌入式系统,游戏。用于同时观察多个应用程序/设备,特别是在使用遥测技术时。 **痛点**:或许它是日志格式化(“Value =%d”,myVal);必须小心。 ** GitHub,BitBucket **:没有任何想法,你可以问作者。 – Igor 2016-02-07 11:31:04

+1

**通信**:据我所知,通信协议基于UDP,并且由于性能原因没有加密。 – Igor 2016-02-07 11:39:26