2009-11-15 174 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