Udostępnij za pośrednictwem


Instruktaż: Filtrowanie danych wyjściowych My.Application.Log (Visual Basic)

W tym instruktażu przedstawiono sposób zmiany domyślnego dziennika filtrowania dla My.Application.Log obiekt, aby kontrolować, jakie informacje są przekazywane z Log obiektów detektorów i jakie informacje są zapisywane przez detektory.Nawet po budowanie aplikacji, można zmienić sposób rejestrowania, ponieważ informacje konfiguracyjne są przechowywane w pliku konfiguracyjnym aplikacji.

Wprowadzenie

Każdy komunikat, że My.Application.Log zapisuje ma poziom ważności skojarzone, które mechanizmów filtrowania służy do kontroli danych wyjściowych dziennika.Używa tej aplikacji przykładowej My.Application.Log metod zapisu kilka logować się różne poziomy ważności wiadomości.

Do tworzenia aplikacji przykładowej

  1. Otwórz nowy Visual Basic projekt aplikacji systemu Windows.

  2. Dodawanie przycisku o nazwie Button1 do formularza Form1.

  3. W Click obsługi zdarzenia Button1, Dodaj następujący kod:

  4. Uruchom aplikację w debugerze.

  5. Naciśnij klawisz Button1.

    Aplikacja zapisuje następujące informacje do pliku wyjściowego i dziennik debugowania aplikacji.

    DefaultSource Information: 0 : In Button1_Click

    DefaultSource Error: 2 : Error in the application.

  6. Zamknij aplikację.

Aby uzyskać informacje dotyczące wyświetlania okna dane wyjściowe debugowania aplikacji, zobacz Okno wyjściowe.Aby uzyskać informacje o lokalizacji pliku dziennika aplikacji, zobacz Instruktaż: Określanie, gdzie My.Application.Log zapisuje informacje (Visual Basic).

[!UWAGA]

Domyślnie stosowania opróżnień wyjściowego pliku dziennika powoduje zamknięcie aplikacji.

W przykładzie powyżej, drugie wywołanie WriteEntry metody i wywołanie WriteException metoda daje danych wyjściowych dziennika podczas wywołania pierwszego i ostatniego WriteEntry metody nie.Wynika to z poziomów ważności WriteEntry i WriteException "Informacje" i "Error", które są dozwolone przez My.Application.Log obiektu domyślne filtrowanie dziennika.Jednak zdarzenia z poziomami ważności "Start" i "Stop" nie generuje danych wyjściowych dziennika.

Filtrowanie dla wszystkich detektorów My.Application.Log

My.Application.Log Obiektu zastosowań SourceSwitch o nazwie DefaultSwitch do kontroli, która wiadomości go przechodzi od WriteEntry i WriteException metody do detektorów dziennika.Można skonfigurować DefaultSwitch w pliku konfiguracyjnym aplikacji, ustawiając jego wartość do jednego z SourceLevels wartości wyliczenia.Domyślnie jego wartość jest "Informacje".

W tej tabeli pokazano poziom ważności, wymagane dla dziennika wpisywać wiadomości, detektory, biorąc pod uwagę w szczególności DefaultSwitch ustawienie.

Wartość DefaultSwitch

Wskaźnik ważności wiadomości, wymagane dla danych wyjściowych

Critical

Critical

Error

CriticallubError

Warning

Critical, Error, orWarning

Information

Critical, Error, Warning, orInformation

Verbose

Critical, Error, Warning, Information, orVerbose

ActivityTracing

Start, Stop, Suspend, Resume, orTransfer

All

Wszystkie wiadomości są dozwolone.

Off

Wszystkie wiadomości są blokowane.

[!UWAGA]

WriteEntry i WriteException metody każdy ma przeciążenia nie określa poziom ważności.Poziom ważności niejawny dla WriteEntry przeciążenie jest "Informacje", a poziom ważności niejawny dla WriteException przeciążenie jest "Error".

W następującej tabeli opisano w poprzednim przykładzie danych wyjściowych dziennika: z domyślnymi DefaultSwitch ustawienie "Informacje", tylko drugie wywołanie do WriteEntry metody i wywołanie WriteException metody produkcji dziennika produkcji.

Do rejestrowania zdarzeń śledzenia aktywności tylko

  1. Kliknij prawym przyciskiem myszy app.config w Solution Explorer i wybierz Otwórz.

    - lub -

    Jeśli nie ma pliku app.config:

    1. Na Projekt menu, wybierz polecenie Dodaj nowy element.

    2. Z Dodaj nowy element okno dialogowe Wybierz Pliku konfiguracyjnego aplikacji.

    3. Kliknij przycisk dodać.

  2. Zlokalizuj <switches> sekcji, która jest w <system.diagnostics> sekcji, która jest w najwyższym poziomie <configuration> sekcji.

  3. Znajdź element, który dodaje DefaultSwitch do kolekcji przełączników.Powinno wyglądać podobnie do tego elementu:

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

  4. Zmień wartość value atrybutu do "ActivityTracing".

  5. Zawartość pliku app.config powinna być podobna do następującej XML:

    <?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. Uruchom aplikację w debugerze.

  7. Naciśnij klawisz Button1.

    Aplikacja zapisuje następujące informacje do pliku wyjściowego i dziennik debugowania aplikacji:

    DefaultSource Start: 4 : Entering Button1_Click

    DefaultSource Stop: 5 : Leaving Button1_Click

  8. Zamknij aplikację.

  9. Zmień wartość value przypisuje "Informacje".

[!UWAGA]

DefaultSwitch Przełącz tylko formantów ustawienie My.Application.Log.Nie zmienia sposób, w jaki .NET FrameworkSystem.Diagnostics.Trace i System.Diagnostics.Debug zachowanie klas. 

Indywidualnej filtrowanie detektorów My.Application.Log

W poprzednim przykładzie przedstawiono sposób zmiany filtrowanie dla wszystkich My.Application.Log danych wyjściowych.Ten przykład demonstruje sposób filtrowania detektor poszczególnych dziennika.Domyślnie aplikacja ma dwa detektory tego zapisu do wyjścia debugowania aplikacji i plików dziennika.

Plik konfiguracyjny kontroluje zachowanie detektory dziennika zezwolenie na każdy z nich do filtru, który jest podobny do przełącznika dla My.Application.Log.Detektor zdarzeń dziennika wyświetli wiadomość tylko wtedy, gdy wskaźnik ważności wiadomości jest dozwolony przez oba dziennika DefaultSwitch i listener dziennika filtr.

Ten przykład demonstruje, jak skonfigurować filtrowanie dla nowych odbiornika debugowania i dodać go do Log obiektu.Odbiornik debugowania domyślne powinny zostać usunięte z Log obiektu, więc jest jasne, że komunikaty debugowania pochodzą z nowy odbiornik debugowania.

Aby rejestrować tylko zdarzenia śledzenia aktywności

  1. Kliknij prawym przyciskiem myszy app.config w Solution Explorer i wybierz polecenie Otwórz.

    - lub -

    Jeśli nie ma pliku app.config:

    1. Na Projekt menu, wybierz polecenie Dodaj nowy element.

    2. Z Dodaj nowy element okno dialogowe Wybierz Pliku konfiguracyjnego aplikacji.

    3. Kliknij przycisk dodać.

  2. Kliknij prawym przyciskiem myszy app.config w Solution Explorer.Wybierz Otwórz.

  3. Zlokalizuj <listeners> sekcji w <source> sekcji z name atrybutu "DefaultSource", który znajduje się pod <sources> sekcji.<sources> Sekcji znajduje się pod <system.diagnostics> sekcji w najwyższego poziomu <configuration> sekcji.

  4. Dodaj ten element do <listeners> sekcji:

    <!-- Remove the default debug listener. -->
    <remove name="Default"/>
    <!-- Add a filterable debug listener. -->
    <add name="NewDefault"/>
  5. Zlokalizuj <sharedListeners> sekcji w <system.diagnostics> sekcji w najwyższego poziomu <configuration> sekcji.

  6. Dodaj ten element, do którego <sharedListeners> sekcji:

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

    EventTypeFilter Filtr przyjmuje jedną z SourceLevels wyliczenia wartości jako jej initializeData atrybut.

  7. Zawartość pliku app.config powinna być podobna do następującej XML:

    <?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. Uruchom aplikację w debugerze.

  9. Naciśnij klawisz Button1.

    Aplikacja zapisuje następujące informacje do pliku dziennika aplikacji:

    Default Information: 0 : In Button1_Click

    Default Error: 2 : Error in the application.

    Aplikacja zapisuje mniej informacji dane wyjściowe debugowania aplikacji ze względu na bardziej restrykcyjne filtrowania.

    Default Error 2 Error

  10. Zamknij aplikację.

Aby uzyskać więcej informacji o zmienianiu ustawień dziennika po wdrożeniu, zobacz Praca z Dzienniki aplikacji w języku Visual Basic.

Zobacz też

Zadania

Instruktaż: Określanie, gdzie My.Application.Log zapisuje informacje (Visual Basic)

Instruktaż: Zmiana, gdzie My.Application.Log zapisuje informacje (Visual Basic)

Instruktaż: Tworzenie niestandardowych dziennika detektory (Visual Basic)

Jak: pisać wiadomości dziennika (Visual Basic)

Koncepcje

Przełączniki śledzenia

Rejestrowanie informacji z aplikacji (Visual Basic)