簡體   English   中英

在.Net中創建具有節流模式功能的記錄器

[英]Create a logger in .Net having Throttling mode functionality

我必須在.NET中創建一個Logger,該Logger可以在正常和限制模式下工作。

當由於某些原因(例如服務器未啟動)而出現連續錯誤或相同錯誤時,它應該停止記錄(意味着它應該切換到節流模式),因為如果說服務器很多天都沒有啟動,則多個日志文件將占用很多空間在磁盤中。

當連續錯誤或相同錯誤停止時,它應返回正常模式。

有人可以在實現該目標方面提供一些邏輯上的幫助嗎? 我正在使用Microsoft Enterprise Library創建記錄器。

企業庫不會讓您知道發生了故障。 它將吞下異常。 如果您配置了錯誤特殊源,它將LogEntry寫入錯誤特殊源。

您可以編寫一個包含您的邏輯的自定義跟蹤偵聽器,也可以修改該塊以包含您的專用邏輯。

我假設您想編寫一個自定義跟蹤偵聽器。

鑒於以上所述,我認為您有兩種選擇:在自定義跟蹤偵聽器中執行預記錄檢查以驗證某些先決條件(服務器已啟動等),或者在自定義跟蹤偵聽器中針對錯誤的特殊來源執行后記錄檢查。 對於后者,您將需要知道錯誤特殊來源的位置和格式,並且需要對其進行解析以確定是否滿足您的錯誤條件(每分鍾的錯誤數量或連續錯誤的數量等)。

兩種解決方案都有缺點。

這怎么辦:對於錯誤,特殊的源使用RollingFlatFileTraceListener設置來覆蓋,從而限制了磁盤的大小(您可以選擇希望文件的大小)? 如果需要,您甚至可以潛在地收集日志信息。 似乎是雙贏的。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM