2009-01-06 63 views
2

我即將在C++中實現一個日誌記錄類,並試圖決定如何去做。我很想知道那裏有哪些不同的日誌實現。你更喜歡什麼日誌實現?

例如,我在Python中使用了「levels」的日誌記錄。在哪裏篩選出低於特定閾值的日誌事件。它還包括記錄「名稱」,您可以通過層次結構過濾事件,例如「app.apples。*」將不會顯示,但會顯示「app.bananas。*」。

我對使用「標籤」有想法,但不確定實現。我已經看到遊戲使用「比特」來實現緊湊。

所以我的問題:

  • 你創建或使用過什麼實現?
  • 您認爲他們的優點和缺點是什麼?
+0

你真的想找什麼類型的日誌?在什麼系統上?你想爲你的應用程序的特定日誌?你想存儲在系統日誌? – 2009-01-06 03:30:14

+0

這更多的是一個通用的問題。只需假定一個應用程序的標準輸出或文件輸出。 – 2009-01-06 03:36:36

回答

3

我想傑夫·阿特伍德

這是關於記錄的溢出,以及如何避免它讀取this post

1

Log4J維基百科頁面上有很多鏈接。

1

傑夫阿特伍德有一個關於登錄的pretty interesting blog條目。最終的信息是,日誌通常是不必要的(在某種程度上)。

日誌通常不能很好地擴展(高流量系統上的數據太多)。

我認爲最好的一點是你通常不需要它。手動跟蹤代碼更容易理解分配給事物的值,而不是篩選大量日誌文件。

這只是信息過載。

現在對於單用戶應用程序來說也是如此。對於媒體編碼或一般操作系統使用情況,可以很好地爲小應用程序提供日誌,因爲在這種情況下調試信息對我有用。如果您正在刻錄DVD並且出現問題,那麼查看日誌信息可以幫助您排除故障,如果您瞭解日誌輸出。

我認爲有幾級可以幫助用戶,如:

  • 沒有日誌
  • 對於一般用戶反饋基本的日誌
  • 爲開發人員或技術支持人員高度的技術數據以解釋

根據具體情況,可能有助於存儲所有日誌數據,並且僅向用戶顯示基本信息,或者可能提供選項以查看所有詳細數據。

這一切都取決於域。

1

我們的一個應用程序使用註冊表項在生產執行期間動態控制日誌/跟蹤。

例如: 如果(Logger.TraceOptionIsEnabled(TraceOption.PLCF_ShowConfig)){...無論

磨片在運行時執行,如果註冊表值PLCF_ShowConfig爲真,則返回true,不管是執行。

非常方便。

相關問題