2009-07-02 117 views
2

有沒有人有關於如何最小化我的Web應用程序日誌的任何建議?如何減少Web應用程序的冗餘日誌消息?

現在,我記錄每一個錯誤。因此,如果出現每次請求發生錯誤(例如數據庫連接問題)的情況,則可能會在每次請求時爲每個用戶記錄日誌。正如你可以想象的那樣,並不需要太多的用戶做太多事情來開始收集具有冗餘日誌錯誤的巨大日誌文件。

我想到了創建某種類型的標記機制,以便在N分鐘內不記錄相同的錯誤。我不喜歡這個有兩個原因。 1)它可以將其中最重要的問題隱藏起來,2)級聯錯誤可能不會正確記錄它們的錯誤蹤跡,省略了以前記錄的錯誤,可能會導致我的初步診斷。

我敢肯定,我不是第一個有這個問題的人...有沒有人有任何建議如何減少Web應用程序的冗餘日誌消息?

+0

你正在使用什麼日誌框架? log4net,ELMAH,企業,本土,其他? – 2009-07-02 15:34:39

+0

@ Dillie-O-Homegrown。但我願意改變。你是否建議日誌框架能爲我處理這個問題? – 2009-07-02 15:38:17

回答

0

我已經與我的用戶錯誤信息相結合,所以當錯誤信息顯示給用戶,他們可以點擊,確定或發送到支持。然後完整的錯誤,調用堆棧,&完整的請求信息被輸入到錯誤跟蹤器中。

這還沒有發佈,所以我們還沒有看到這是不是一個好主意......會讓你張貼。

PS-I已回答我自己的問題作爲備案,並選擇它,因爲其他答案不符合我的需要。

2

您可以創建一個日誌記錄系統,該日誌系統記錄到數據庫,並設置一個標誌來確定是記錄單個條目,還是隻計算基本日誌條目的計數器。通過計數,您可以看到錯誤的總數,但沒有爆炸的日誌文件。

+0

謝謝,這是一個好主意,但我更願意登錄到文本文件。 – 2009-07-02 15:39:03

1

您可以嘗試將最後一個條目與您要放入日誌的錯誤進行比較。如果這是相同的類型和來源,則在末尾附加一個字符串「(重複n次)」。

每次記錄看到這樣的字符串和錯誤匹配,它可以增加n個,直到另一個錯誤類型的用武之地。

+0

謝謝。我想到了這一點,但我不想進入'閱讀'日誌。 – 2009-07-02 18:12:52

1

要回答您在評論中提出的問題,據我所知,沒有包含此類功能的開箱即用解決方案。

另一個需要考慮的想法是(我意識到在這一點上你已經接受了你自己的答案)就是爲系統中的每個錯誤記錄點分配一個ID。當記錄錯誤時,您可以保存錯誤標識的簡單哈希表以及記錄錯誤的時間。然後在處理日誌時,如果錯誤已經存在於散列中,並且已經在5分鐘內(或者您決定的任何時間),那麼您可以簡單地中止日誌並更新時間戳。

我不確定是否讓用戶發送錯誤消息請求將解決您的問題,因爲如果您的所有用戶都提交了該消息,它將與錯誤日誌一樣,只有您的收件箱將被淹沒而不是簡單地監視日誌文件本身。