循環追蹤
CircularTracing 範例會示範循環緩衝區追蹤接聽程式的實作。 實際執行服務的常見案例是產生可長時間使用的服務以及可在低階進行的追蹤記錄。 這些服務會耗用大量的磁碟空間。 在進行服務疑難排解時,追蹤記錄中最近的資料往往最切合問題的解決。 這個範例將示範實作循環緩衝區追蹤接聽項,其中會將最近的追蹤保存在磁碟上,最多到某個可設定的資料數量。 這個範例以使用者入門為基礎,並附有自訂追蹤接聽程式。
注意
此範例的安裝程序與建置指示位於本主題的結尾。
此範例假設您熟悉追蹤和訊息記錄範例,而且已閱讀針對追蹤和訊息記錄範例提供的文件。
循環緩衝區追蹤接聽項
實作「循環緩衝區追蹤接聽項」的基本概念是產生兩個檔案,而這兩個檔案可以各自儲存多達追蹤記錄資料總共所需數量的一半。 接聽項會先建立一個檔案,再寫入該檔案直到資料大小上限的一半為止,然後於此時切換到第二個檔案。 當接聽項寫入到達第二個檔案的限制時,便會將新的追蹤覆寫到第一個檔案。
此接聽程式衍生自 XmlWriteTraceListener
,可讓您使用服務追蹤檢視器工具 (SvcTraceViewer.exe) 來檢視記錄。 當您嘗試檢視記錄時,只要在 [服務追蹤檢視器] 工具中同時開啟這兩個記錄檔,就可以輕易地將兩個記錄檔重新合併。 [服務追蹤檢視器] 工具會自動排序追蹤,讓它們依照正確的順序出現。
組態
您可以為接聽項與來源項目新增下列程式碼,以便將服務設定為使用循環緩衝區追蹤接聽項。 在循環追蹤接聽項的組態中設定 maxFileSizeKB
屬性,可以指定檔案大小的上限。 這點會在下列程式碼中示範。
<system.diagnostics>
<sources>
<source name="System.ServiceModel" switchValue="Information,ActivityTracing" propagateActivity="true">
<listeners>
<add name="CircularTraceListener" />
</listeners>
</source>
</sources>
<sharedListeners>
<add name="CircularTraceListener" type="Microsoft. Samples.ServiceModel.CircularTraceListener,CircularTraceListener"
initializeData="c:\logs\CircularTracing-service.svclog" maxFileSizeKB="100" />
</sharedListeners>
<trace autoflush="true" />
</system.diagnostics>
若要安裝、建置及執行範例
若要建置方案的 C# 或 Visual Basic .NET 版本,請遵循 Building the Windows Communication Foundation Samples中的指示。
若要在單一或多部電腦組態中執行此範例,請遵循執行 Windows Communication Foundation 範例中的指示進行。