HOW TO:設定追蹤參數

更新:2007 年 11 月

在散發應用程式之後,您仍然可藉由設定應用程式中的追蹤參數來啟用或停用追蹤輸出。設定參數表示在已初始化參數後從外部原始檔變更參數值。您可使用組態檔來變更參數物件的值。您設定開啟或關閉追蹤參數,或設定其層級,決定要一起傳送至接聽程式的訊息數量和型別。

參數是使用 .config 檔案來設定的。就 Web 應用程式而言,這是與專案關聯的 Web.config 檔案。在 Windows 應用程式中,這個檔案被命名為 (應用程式名稱).exe.config。在部署應用程式中,必須將這個檔案放置在與可執行檔相同的資料夾中。

當應用程式第一次執行建立參數執行個體的程式碼時,會檢查組態檔是否有關於具名參數的追蹤層級資訊。追蹤系統只會檢查一次組態檔是否有任何特定參數,也就是在應用程式第一次建立參數時。

在部署應用程式中,在應用程式未執行時重新設定參數物件,以啟用追蹤程式碼。這通常涉及開啟或關閉參數物件,或變更追蹤層級,然後重新啟動應用程式。

當建立參數的執行個體時,您可以指定兩個引數將其初始化:displayName 引數和 description 引數。建構函式的 displayName 引數會設定 Switch 類別執行個體的 Switch.DisplayName 屬性。displayName 是用來在 .config 檔案中設定參數的名稱,而 description 引數則應傳回參數的簡短描述和其控制的訊息。

除了指定要設定的參數的名稱以外,您也必須指定參數值。這個值是個整數。如果是 BooleanSwitch,0 值會對應到 Off,而任何非零值則對應到 On。如果是 TraceSwitch,0、1、2、3 和 4 分別對應 OffErrorWarningInfoVerbose。大於 4 的任何數字都會被視為 Verbose,而小於零的任何數字則會被視為 Off

注意事項:

在 .NET Framework 2.0 版中,您可以使用文字來指定參數的值。例如,BooleanSwitch 的 true 或是表示列舉值的文字 (例如 TraceSwitch 的 Error)。<add name="myTraceSwitch" value="Error" /> 這一行相當於 <add name="myTraceSwitch" value="1" />。

為了讓使用者能夠設定應用程式的追蹤參數,必須在應用程式中提供有關參數的詳細文件。您應詳述參數的控制功能及如何開啟和關閉參數。您也應為使用者提供 .config 檔案,以在註解中提供適當的說明。

若要建立和設定追蹤參數

  1. 在程式碼中建立參數。如需詳細資訊,請參閱建立和初始化追蹤參數

  2. 如果您的專案不含組態檔 (app.config 或 Web.config),請從 [專案] 功能表中選取 [加入新項目]。

    • Visual Basic:在 [加入新項目] 對話方塊中,選擇 [應用程式組態檔]。

      建立並開啟應用程式組態檔。這是根項目 (Root Element) 為 <configuration>. 的 XML 文件

    • Visual C#:在 [加入新項目] 對話方塊中,選擇 [XML 檔]。命名此檔為 app.config。在 XML 編輯器中,在 XML 宣告後新增下列 XML:

      <configuration>
      </configuration>
      

      在專案經過編輯後,app.config 檔案會複製到專案輸出資料夾,並重新命名為 applicationname.exe.config。

  3. 在 <configuration> 標記 (Tag) 後及 </configuration> 標記前,加入適當的 XML 以設定參數。以下範例使用 DataMessageSwitch 的 DisplayName 屬性示範 BooleanSwitch,並用 TraceLevelSwitch 的 DisplayName 屬性示範 TraceSwitch

    <system.diagnostics>
       <switches>
          <add name="DataMessagesSwitch" value="0" />
          <add name="TraceLevelSwitch" value="0" />
       </switches>
    </system.diagnostics>
    

    在這個組態中,這兩個參數都是關閉狀態。

  4. 如果您需要開啟 BooleanSwitch,例如先前範例中顯示的 DataMessagesSwitch,請將 Value 變更成任何非 0 的整數。

  5. 如果您需要開啟 TraceSwitch,例如先前範例中顯示的 TraceLevelSwitch,請將 Value 變更為適當的層級設定 (1 至 4)。

  6. 將註解加入 .config 檔案,讓使用者能夠完全明白要變更什麼數值以適當設定參數。

    下列範例顯示最後程式碼 (包括註解) 可能的樣子:

    <system.diagnostics>
       <switches>
          <!-- This switch controls data messages. In order to receive data 
             trace messages, change value="0" to value="1" -->
          <add name="DataMessagesSwitch" value="0" />
          <!-- This switch controls general messages. In order to 
             receive general trace messages change the value to the 
             appropriate level. "1" gives error messages, "2" gives errors 
             and warnings, "3" gives more detailed error information, and 
             "4" gives verbose trace information -->
          <add name="TraceLevelSwitch" value="0" />
       </switches>
    </system.diagnostics>
    

請參閱

工作

HOW TO:將追蹤陳述式加入至應用程式程式碼

概念

檢測和追蹤的簡介

追蹤參數

參考

追蹤和偵錯設定結構描述

其他資源

追蹤和稽核應用程式