Freigeben über


Gewusst wie: Konfigurieren von Ablaufverfolgungsschaltern

Aktualisiert: November 2007

Sie können eine Ablaufverfolgungsausgabe auch aktivieren, nachdem die Anwendung verteilt wurde, oder deaktivieren, indem Sie die Ablaufverfolgungsschalter in der Anwendung konfigurieren. Konfigurieren eines Schalters bedeutet, seinen Wert nach seiner Initialisierung von einer externen Quelle aus zu ändern. Die Werte der Schalterobjekte können Sie in der Konfigurationsdatei ändern. Bei der Konfiguration wird ein Ablaufverfolgungsschalter aktiviert oder deaktiviert, oder seine Ebene wird festgelegt und dadurch Menge und Typ der Meldungen bestimmt, die er an Listener weiterleitet.

Schalter werden in der CONFIG-Datei konfiguriert. Bei einer Webanwendung handelt es sich dabei um die dem Projekt zugeordnete Datei Web.config. In einer Windows-Anwendung heißt diese Datei (Anwendungsname).exe.config. In einer bereitgestellten Anwendung muss diese Datei im selben Ordner abgelegt werden wie die ausführbare Datei.

Wenn die Anwendung den Code ausführt, der eine Schalterinstanz zum ersten Mal erstellt, überprüft sie die Konfigurationsdatei auf Informationen über die Ablaufverfolgungsebene des genannten Schalters. Das Ablaufverfolgungssystem durchsucht die Konfigurationsdatei für jeden Schalter nur einmal – und zwar dann, wenn er von der Anwendung zum ersten Mal erstellt wird.

In einer bereitgestellten Anwendung aktivieren Sie den Ablaufverfolgungscode, indem Sie Schalterobjekte neu konfigurieren, wenn die Anwendung nicht ausgeführt wird. In der Regel müssen Sie dazu die Schalterobjekte aktivieren und deaktivieren oder die Ablaufverfolgungsebenen ändern. Starten Sie die Anwendung anschließend neu.

Eine neu erstellte Schalterinstanz wird durch Angeben zweier Argumente auch initialisiert: durch ein displayName-Argument und ein description-Argument. Das displayName-Argument des Konstruktors legt die Switch.DisplayName-Eigenschaft der Switch-Klasseninstanz fest. Der displayName ist der Name, unter dem der Schalter in der CONFIG-Datei konfiguriert wird. Das description-Argument sollte eine Kurzbeschreibung des Schalters und der von ihm gesteuerten Meldungen zurückgeben.

Neben einem Namen müssen Sie auch einen Wert für einen zu konfigurierenden Schalter angeben. Dieser Wert ist eine ganze Zahl. Bei BooleanSwitch entspricht der Wert 0 Off, und alle anderen Werte als 0 entsprechen On. Bei TraceSwitch entsprechen 0, 1, 2, 3 und 4 jeweils Off, Error, Warning, Info und Verbose. Größere Zahlen als 4 gelten als Verbose und Zahlen unter Null als Off.

Hinweis:

In .NET Framework Version 2.0 können Sie Text verwenden, um den Wert für einen Schalter anzugeben. Beispielsweise true für einen BooleanSwitch oder den Text, der einen Enumerationswert wie Error für TraceSwitch darstellt. Die Zeile <add name="myTraceSwitch" value="Error" /> ist äquivalent zu <add name="myTraceSwitch" value="1" />.

Damit Endbenutzer die Ablaufverfolgungsschalter einer Anwendung konfigurieren können, müssen Sie detaillierte Dokumentation zu den Schaltern zur Verfügung stellen. Darin sollten Sie im Einzelnen ausführen, welche Schalter welche Vorgänge steuern und wie sie aktiviert und deaktiviert werden. Außerdem sollte den Endbenutzern eine CONFIG-Datei mit entsprechenden Hilfeinformationen in Kommentaren zur Verfügung stehen.

So erstellen und konfigurieren Sie Ablaufverfolgungsschalter

  1. Erstellen Sie die Schalter im Code. Weitere Informationen finden Sie unter Erstellen und Initialisieren von Ablaufverfolgungsschaltern.

  2. Wenn das Projekt keine Konfigurationsdatei enthält (app.config oder Web.config), wählen Sie im Menü Projekt die Option Neues Element hinzufügen aus.

    • Visual Basic: Klicken Sie im Dialogfeld Neues Element hinzufügen auf Anwendungskonfigurationsdatei.

      Die Anwendungskonfigurationsdatei wird erstellt und geöffnet. Dabei handelt es sich um ein XML-Dokument mit dem Stammelement <configuration>.

    • Visual C#: Klicken Sie im Dialogfeld Neues Element hinzufügen auf XML-Datei. Nennen Sie diese Datei app.config. Fügen Sie im XML-Editor nach der XML-Deklaration die folgende XML hinzu:

      <configuration>
      </configuration>
      

      Nach der Kompilierung des Projekts wird die Datei app.config in den Projektausgabeordner kopiert und in Anwendungsname.exe.config umbenannt.

  3. Fügen Sie nach dem <configuration>-Tag und vor dem </configuration>-Tag die entsprechende XML ein, um die Schalter zu konfigurieren. Die folgenden Beispiele erläutern einen BooleanSwitch mit der DisplayName-Eigenschaft DataMessageSwitch und einen TraceSwitch mit der DisplayName-Eigenschaft TraceLevelSwitch.

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

    In dieser Konfiguration sind beide Schalter deaktiviert.

  4. Zum Aktivieren eines BooleanSwitch, wie DataMessagesSwitch im vorhergehenden Beispiel, ändern Sie Value in eine beliebige ganze Zahl mit Ausnahme von 0.

  5. Zum Aktivieren eines TraceSwitch, wie TraceLevelSwitch im vorhergehenden Beispiel, ändern Sie Value in die entsprechende Ebeneneinstellung (1 bis 4).

  6. Fügen Sie Kommentare in die CONFIG-Datei ein, damit für Endbenutzer klar ersichtlich ist, welche Werte beim Konfigurieren der Schalter jeweils geändert werden müssen.

    Im folgenden Beispiel wird gezeigt, wie der endgültige Code einschließlich der Kommentare aussehen könnte:

    <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>
    

Siehe auch

Aufgaben

Gewusst wie: Hinzufügen von Ablaufverfolgungsanweisungen zu Anwendungscode

Konzepte

Einführung in Instrumentation und Ablaufverfolgung

Ablaufverfolgungsschalter

Referenz

Schema für Ablaufverfolgungs- und Debugeinstellungen

Weitere Ressourcen

Ablaufverfolgung und Instrumentieren von Anwendungen