Exemplarische Vorgehensweise: Filterung der Ausgaben von "My.Application.Log" (Visual Basic)

 

Die neueste Dokumentation zu Visual Studio 2017 finden Sie unter Dokumentation zu Visual Studio 2017.

In dieser exemplarischen Vorgehensweise veranschaulicht, wie das Protokoll für die Filterung ändern die My.Application.Log Objekt, um zu steuern, welche Informationen übergeben wird, aus der Log Objekt, das die Listener und welche Informationen von den Listenern geschrieben wird. Sie können das Protokollierungsverhalten ändern, auch nach dem Erstellen der Anwendung, da die Konfigurationsinformationen in der Konfigurationsdatei der Anwendung gespeichert ist.

Nachrichten, die My.Application.Log Schreibvorgänge verfügt über einen zugeordneten Schweregrad, welche Filtermechanismen zu verwenden, um die Protokollausgabe steuern. Diese Anwendung verwendet My.Application.Log Methoden zum Schreiben von mehreren Nachrichten mit Schweregrade protokollieren.

Zum Erstellen der beispielanwendung

  1. Öffnen Sie eine neue Visual Basic Windows-Anwendungsprojekt.

  2. Hinzufügen einer Schaltfläche mit dem Namen Button1 zu Form1 hinzu.

  3. In der Klicken Sie auf -Ereignishandler für Button1, fügen Sie folgenden Code:

            ' Activity tracing information
            My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start)
    
            ' Tracing information
            My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information)
    
            ' Create an exception to log.
            Dim ex As New ApplicationException
            ' Exception information
            My.Application.Log.WriteException(ex)
    
            ' Activity tracing information
            My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
    

  4. Die Anwendung im Debugger auszuführen.

  5. Drücken Sie Button1.

    Die Anwendung schreibt die folgende Informationen in der Datei der Anwendung debuggen und die Protokolldatei.

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. Schließen Sie die Anwendung.

    Informationen zum Anzeigen der Anwendung Debug-Ausgabefenster finden Sie unter Ausgabefenster. Informationen auf den Speicherort der Protokolldatei für die Anwendung finden Sie unter Exemplarische Vorgehensweise: bestimmen, wohin "My.Application.log" schreibt Informationen.

    System_CAPS_ICON_note.jpg Hinweis

    In der Standardeinstellung leert die Anwendung die Protokolldatei Ausgabe beim Schließen der Anwendung.

    Im obigen Beispiel ist der zweite Aufruf von der WriteEntry und der Aufruf von der WriteException Methode erzeugt, während die erste und letzte Aufrufe an die WriteEntry Methode nicht. Grund hierfür ist, den Schweregrad von WriteEntry und WriteException sind "Information" und "Fehler", die zulässig sind die My.Application.Log des Objekts Standard Protokoll filtern. Allerdings werden Ereignisse mit einem Schweregrad von "Start" und "Beenden" Protokollausgabe verhindert.

Die My.Application.Log -Objekt verwendet eine SourceSwitch namens DefaultSwitch steuern, welche von übergibt Nachrichten die WriteEntry und WriteException Methoden, um die Protokolllistener. Sie können konfigurieren, DefaultSwitch in der Anwendungskonfigurationsdatei durch Festlegen ihres Werts eines der SourceLevels -Enumerationswerte. Standardmäßig ist der Wert "Informationen".

Diese Tabelle zeigt den Schweregrad für die Anmeldung zum Schreiben einer Meldung an die Listener einer bestimmten erforderlich DefaultSwitch festlegen.

DefaultSwitch-WertErforderlich für die Ausgabe den Schweregrad der Meldung
CriticalCritical
ErrorCritical oder Error
WarningCritical, Error oder Warning
InformationCritical, Error, Warning oder Information
VerboseCritical, Error, Warning, Information oder Verbose
ActivityTracingStart, Stop, Suspend, Resume oder Transfer
AllAlle Nachrichten sind zulässig.
OffAlle Nachrichten werden blockiert.
System_CAPS_ICON_note.jpg Hinweis

Die WriteEntry und WriteException Methoden geben jeweils eine Überladung, der nicht mit einen Schweregrad haben. Der implizite Schweregrad für die WriteEntry Überladung ist "Information", und der implizite Schweregrad für die WriteException -Überladung ist "Error".

Dieser Tabelle werden die im vorherigen Beispiel gezeigte Protokollausgaben erläutert: mit der standardmäßigen DefaultSwitch "Information" festlegen, nur für den zweiten Aufruf der WriteEntry -Methode und der Aufruf von der WriteException -Methode Protokollausgaben.

Ablaufverfolgungsereignisse einzige Aktivität protokollieren

  1. Mit der rechten Maustaste in "App.config" in der Projektmappen-Explorer und wählen Sie Öffnen.

    • oder -

    Wenn keine app.config-Datei vorhanden ist:

    1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

    2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Anwendungskonfigurationsdateiaus.

    3. Klicken Sie auf Hinzufügen.

  2. Suchen Sie die <switches> Abschnitt, der in der <system.diagnostics> Abschnitt, der in der obersten Ebene wird <configuration> Abschnitt.

  3. Suchen Sie das Element, das addiert DefaultSwitch auf die Auflistung von Schaltern. Sie sollten dieses Element ähnelt:

    <add name="DefaultSwitch" value="Information" />

  4. Ändern Sie den Wert, der die value -Attributs in "ActivityTracing".

  5. Der Inhalt der app.config-Datei sollte ähnlich dem folgenden XML-Code sein:

    <?xml version="1.0" encoding="utf-8" ?>  
    <configuration>  
      <system.diagnostics>  
        <sources>  
          <!-- This section configures My.Application.Log -->  
          <source name="DefaultSource" switchName="DefaultSwitch">  
            <listeners>  
              <add name="FileLog"/>  
            </listeners>  
          </source>  
        </sources>  
        <switches>  
          <add name="DefaultSwitch" value="ActivityTracing" />  
        </switches>  
        <sharedListeners>  
          <add name="FileLog"  
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener,   
                     Microsoft.VisualBasic, Version=8.0.0.0,   
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,   
                     processorArchitecture=MSIL"   
               initializeData="FileLogWriter"/>  
        </sharedListeners>  
      </system.diagnostics>  
    </configuration>  
    
    
  6. Die Anwendung im Debugger auszuführen.

  7. Drücken Sie Button1.

    Die Anwendung schreibt die folgende Informationen in der Datei der Anwendung debuggen und die Protokolldatei:

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Schließen Sie die Anwendung.

  9. Ändern Sie den Wert, der die value -Attributs zurück in "Information".

    System_CAPS_ICON_note.jpg Hinweis

    Die DefaultSwitch Einstellung steuert nur Schalter My.Application.Log. Ändert sich nicht wie die .NET Framework System.Diagnostics.Trace und System.Diagnostics.Debug Klassen Verhalten.

Im vorherige Beispiel veranschaulicht das Ändern der Filterung für alle My.Application.Log Ausgabe. In diesem Beispiel wird veranschaulicht, wie einen einzelnen Protokolllistener filtern. Standardmäßig verwendet eine Anwendung zwei Listener, die in die Debugausgabe und die Protokolldatei schreiben.

Die Konfigurationsdatei steuert das Verhalten der Protokolllistener durch Angabe jeweils einen Filter verfügen, vergleichbar mit einem Switch für My.Application.Log. Ein Protokolllistener wird eine Meldung ausgegeben, nur, wenn der Schweregrad der Meldung sowohl das Protokoll zulässig ist DefaultSwitch und die Protokolllistener filtern.

In diesem Beispiel wird veranschaulicht, wie das Konfigurieren der Filterung für einen neuen Debuglistener, und fügen sie der Log Objekt. Der Standard-Debug-Listener sollte entfernt werden, aus der Log Objekt, damit deutlich wird, dass die Debugmeldungen vom neuen Debuglistener stammen.

Nur aktivitätsablaufverfolgung Ereignisse protokollieren

  1. Mit der rechten Maustaste in "App.config" in der Projektmappen-Explorer und wählen Sie Öffnen.

    • oder -

    Wenn keine app.config-Datei vorhanden ist:

    1. Klicken Sie im Menü Projekt auf Neues Element hinzufügen.

    2. Wählen Sie im Dialogfeld Neues Element hinzufügen den Eintrag Anwendungskonfigurationsdateiaus.

    3. Klicken Sie auf Hinzufügen.

  2. Mit der rechten Maustaste in app.config Projektmappen-Explorer. Wählen Sie Öffnen.

  3. Suchen Sie die <listeners> im Abschnitt der <source> im Abschnitt mit der name -Attribut "DefaultSource" befindet sich unter der <sources> Abschnitt. Die <sources> Abschnitt befindet sich in der <system.diagnostics> in der obersten Ebene im Abschnitt <configuration> Abschnitt.

  4. Fügen Sie dieses Element in der <listeners> Abschnitt:

    <!-- Remove the default debug listener. -->  
    <remove name="Default"/>  
    <!-- Add a filterable debug listener. -->  
    <add name="NewDefault"/>  
    
    
  5. Suchen Sie den Abschnitt <sharedListeners> im <system.diagnostics> -Abschnitt im Abschnitt <configuration> der obersten Ebene.

  6. Fügen Sie dem <sharedListeners> -Abschnitt dieses Element hinzu:

    <add name="NewDefault"   
         type="System.Diagnostics.DefaultTraceListener,   
               System, Version=2.0.0.0, Culture=neutral,   
               PublicKeyToken=b77a5c561934e089,   
               processorArchitecture=MSIL">  
        <filter type="System.Diagnostics.EventTypeFilter"   
                initializeData="Error" />  
    </add>  
    
    

    Die EventTypeFilter Filter akzeptiert einen von der SourceLevels -Enumerationswerte als seine initializeData Attribut.

  7. Der Inhalt der app.config-Datei sollte ähnlich dem folgenden XML-Code sein:

    <?xml version="1.0" encoding="utf-8" ?>  
    <configuration>  
      <system.diagnostics>  
        <sources>  
          <!-- This section configures My.Application.Log -->  
          <source name="DefaultSource" switchName="DefaultSwitch">  
            <listeners>  
              <add name="FileLog"/>  
              <!-- Remove the default debug listener. -->  
              <remove name="Default"/>  
              <!-- Add a filterable debug listener. -->  
              <add name="NewDefault"/>  
            </listeners>  
          </source>  
        </sources>  
        <switches>  
          <add name="DefaultSwitch" value="Information" />  
        </switches>  
        <sharedListeners>  
          <add name="FileLog"  
               type="Microsoft.VisualBasic.Logging.FileLogTraceListener,   
                     Microsoft.VisualBasic, Version=8.0.0.0,   
                     Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a,   
                     processorArchitecture=MSIL"   
               initializeData="FileLogWriter"/>  
          <add name="NewDefault"   
               type="System.Diagnostics.DefaultTraceListener,   
                     System, Version=2.0.0.0, Culture=neutral,   
                     PublicKeyToken=b77a5c561934e089,   
                     processorArchitecture=MSIL">  
            <filter type="System.Diagnostics.EventTypeFilter"   
                    initializeData="Error" />  
          </add>  
        </sharedListeners>  
      </system.diagnostics>  
    </configuration>  
    
    
  8. Die Anwendung im Debugger auszuführen.

  9. Drücken Sie Button1.

    Die Anwendung schreibt die folgende Informationen in der Anwendung-Protokolldatei:

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    Die Anwendung schreibt weniger Informationen in die Debugausgabe aufgrund der restriktiveren Filterung.

    Default Error 2 Error

  10. Schließen Sie die Anwendung.

Weitere Informationen zum Ändern der Einstellungen für nach der Bereitstellung finden Sie unter Arbeiten mit Anwendungsprotokollen.

Exemplarische Vorgehensweise: Bestimmen, wohin "My.Application.log" Informationen schreibt
Exemplarische Vorgehensweise: Ändern, wohin "My.Application.log" Informationen schreibt
Exemplarische Vorgehensweise: Erstellen von benutzerdefinierten Protokolllistenern
Gewusst wie: Schreiben von Protokollmeldungen
Trace-Schalter
Protokollieren von Informationen aus der Anwendung

Anzeigen: