2009-04-07 51 views
1

我正在使用.NET的內置跟蹤機制來跟蹤程序的執行。問題是跟蹤文件可能會很快增長到幾MB。當文件超過特定點時,是否有截斷文件的有效方法?每當寫入內容時(我有一個從TraceListener繼承的自定義類),我都會考慮進行檢查,但這可能會降低性能。也許計時器會是一個更好的解決方案?截取跟蹤文件變得過大時的有效方法?

任何人有任何想法?

回答

4

實現自定義跟蹤監聽器:

讓我們看看我們如何能夠解決相當普遍的任務:管理不斷生成的跟蹤文件。默認的跟蹤監聽器實現並不真正適用於應該始終處於活動狀態的服務應用程序。如果應用程序產生大量的跟蹤輸出,那麼這個信息遲早會佔用所有的磁盤空間。

http://www.codeproject.com/KB/dotnet/customnettracelisteners.aspx?display=Print

有了這個例子,你可以創建日誌chunck這樣的:

MyTrace.txt (recent trace information); 
MyTrace00.txt (trace history backup); 
MyTrace01.txt (trace history backup); 
and so on... 

當然,你可以扔掉備份文件了。

(只是一個提示:儘量log4net的here)和企業庫日誌程序塊here)!)

+0

我使用內置跟蹤的原因是因爲我不需要大型日誌記錄解決方案。我只需要能夠在調試過程中跟蹤 – ilitirit 2009-04-07 15:08:14

1

也許使用事件日誌跟蹤偵聽器,因爲事件日誌可以通過這種方式輕鬆自動循環。

+0

我已經將信息記錄到事件日誌,但它不包含跟蹤信息。我只在調試或QA會話期間啓用跟蹤。 – ilitirit 2009-04-07 15:09:28