Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zalogować się lub zmienić katalogi.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
W tym przewodniku pokazano, jak zmienić domyślne filtrowanie dziennika dla My.Application.Log obiektu, aby kontrolować, jakie informacje są przekazywane z Log obiektu do odbiorników i jakie informacje są zapisywane przez odbiorniki. Zachowanie rejestrowania można zmienić nawet po utworzeniu aplikacji, ponieważ informacje o konfiguracji są przechowywane w pliku konfiguracji aplikacji.
Wprowadzenie
Każdy komunikat, który zapisuje My.Application.Log, ma przypisany poziom ważności, który mechanizmy filtrowania wykorzystują w celu kontrolowania wyniku dziennika. Ta przykładowa aplikacja używa My.Application.Log metod do zapisywania kilku komunikatów dziennika o różnych poziomach ważności.
Aby skompilować przykładową aplikację
Otwórz nowy projekt aplikacji systemu Windows w języku Visual Basic.
Dodaj przycisk o nazwie Button1 do formularza Form1.
W procedurze obsługi zdarzeń Click dla przycisku Button1 dodaj następujący kod:
' 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)Uruchom aplikację w debugerze.
Naciśnij przycisk1.
Aplikacja zapisuje następujące informacje w pliku wyjściowym debugowania i pliku dziennika aplikacji.
DefaultSource Information: 0 : In Button1_ClickDefaultSource Error: 2 : Error in the application.Zamknij aplikację.
Aby uzyskać informacje na temat wyświetlania okna danych wyjściowych debugowania aplikacji, zobacz Okno danych wyjściowych. Aby uzyskać informacje na temat lokalizacji pliku dziennika aplikacji, zobacz Przewodnik: określanie miejsca zapisywania informacji o pliku My.Application.Log.
Uwaga / Notatka
Domyślnie aplikacja opróżnia dane wyjściowe pliku dziennika po zamknięciu aplikacji.
W powyższym przykładzie drugie wywołanie metody WriteEntry i wywołanie metody WriteException generują dane wyjściowe dziennika, podczas gdy pierwsze i ostatnie wywołania metody
WriteEntrynie. Jest to spowodowane poziomami ważnościWriteEntryiWriteException, które są „Informacje” i „Błąd”, z których oba są dopuszczalne przez domyślne filtrowanie dziennika obiektuMy.Application.Log. Jednak zdarzenia z poziomami ważności "Start" i "Stop" nie mogą tworzyć danych wyjściowych dziennika.
Filtrowanie dla wszystkich nasłuchujących My.Application.Log
Obiekt My.Application.Log używa SourceSwitch o nazwie DefaultSwitch do kontrolowania, które komunikaty są przekazywane z metod WriteEntry i WriteException do odbiorników dziennika. Możesz skonfigurować DefaultSwitch w pliku konfiguracji aplikacji, ustawiając jej wartość na jedną z SourceLevels wartości wyliczenia. Domyślnie jej wartość to "Informacje".
W tej tabeli przedstawiono poziom ważności wymagany dla Log, aby zapisać wiadomość do odbiorników, biorąc pod uwagę określone DefaultSwitch ustawienie.
| Wartość przełącznika domyślnego | Ważność komunikatu wymagana dla danych wyjściowych |
|---|---|
Critical |
Critical |
Error |
Critical lub Error |
Warning |
Critical, Error lub Warning |
Information |
Critical, Error, Warninglub Information |
Verbose |
Critical, Error, Warning, Informationlub Verbose |
ActivityTracing |
Start, Stop, Suspend, Resumelub Transfer |
All |
Wszystkie komunikaty są dozwolone. |
Off |
Wszystkie komunikaty są blokowane. |
Uwaga / Notatka
Metody WriteEntry i WriteException mają przeciążenie, które nie określa poziomu ważności. Niejawny poziom WriteEntry ważności przeciążenia to "Informacje", a niejawny poziom WriteException ważności przeciążenia to "Błąd".
W tej tabeli objaśnia się wyjście dziennika pokazane w poprzednim przykładzie: z domyślnym DefaultSwitch ustawieniem "Information" tylko drugie wywołanie metody WriteEntry i wywołanie metody WriteException generują wyjście dziennika.
Aby rejestrować tylko zdarzenia śledzenia aktywności
Kliknij prawym przyciskiem myszy app.config w Eksploratorze rozwiązań i wybierz polecenie Otwórz.
— lub —
Jeśli nie ma pliku app.config:
W menu Project (Projekt ) wybierz pozycję Add New Item (Dodaj nowy element).
W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Plik konfiguracji aplikacji.
Kliknij przycisk Dodaj.
Znajdź sekcję
<switches>, która znajduje się w sekcji<system.diagnostics>, która znajduje się w sekcji najwyższego poziomu<configuration>.Znajdź element, który dodaje
DefaultSwitchdo kolekcji przełączników. Powinien wyglądać podobnie do tego elementu:<add name="DefaultSwitch" value="Information" />Zmień wartość atrybutu
valuena "ActivityTracing".Zawartość pliku app.config powinna być podobna do następującego kodu 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>Uruchom aplikację w debugerze.
Naciśnij przycisk1.
Aplikacja zapisuje następujące informacje w pliku danych wyjściowych i dziennika debugowania aplikacji:
DefaultSource Start: 4 : Entering Button1_ClickDefaultSource Stop: 5 : Leaving Button1_ClickZamknij aplikację.
Zmień wartość atrybutu
valuez powrotem na "Informacje".Uwaga / Notatka
Ustawienie przełącznika
DefaultSwitchkontroluje tylkoMy.Application.Log. Nie zmienia zachowania klas .NET System.Diagnostics.Trace i System.Diagnostics.Debug.
Filtrowanie indywidualne dla odbiorników My.Application.Log
W poprzednim przykładzie pokazano, jak zmienić filtrowanie dla wszystkich My.Application.Log danych wyjściowych. W tym przykładzie pokazano, jak filtrować pojedynczego słuchacza dziennika. Domyślnie aplikacja ma dwa odbiorniki zapisujące dane wyjściowe debugowania aplikacji i plik dziennika.
Plik konfiguracji kontroluje zachowanie słuchaczy logów, pozwalając każdemu z nich mieć filtr, który działa podobnie do przełącznika dla My.Application.Log. Słuchacz logów wyświetli komunikat tylko wtedy, gdy stopień ważności komunikatu jest dozwolony zarówno przez filtr logów DefaultSwitch, jak i filtr słuchacza logów.
W tym przykładzie pokazano, jak skonfigurować filtrowanie dla nowego odbiornika debugowania i dodać go do Log obiektu. Domyślny odbiornik debugowania powinien zostać usunięty z Log obiektu, dlatego jest jasne, że komunikaty debugowania pochodzą z nowego odbiornika debugowania.
Aby rejestrować tylko zdarzenia śledzenia aktywności
Kliknij prawym przyciskiem myszy app.config w Eksploratorze rozwiązań i wybierz polecenie Otwórz.
— lub —
Jeśli nie ma pliku app.config:
W menu Project (Projekt ) wybierz pozycję Add New Item (Dodaj nowy element).
W oknie dialogowym Dodawanie nowego elementu wybierz pozycję Plik konfiguracji aplikacji.
Kliknij przycisk Dodaj.
Kliknij prawym przyciskiem myszy app.config w Eksploratorze rozwiązań. Wybierz pozycję Otwórz.
Znajdź sekcję
<listeners>w<source>sekcji z atrybutemname"DefaultSource", który znajduje się w<sources>sekcji . Sekcja<sources>znajduje się pod sekcją<system.diagnostics>w sekcji najwyższego poziomu<configuration>.Dodaj ten element do
<listeners>sekcji:<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>Zlokalizuj sekcję
<sharedListeners>w sekcji<system.diagnostics>w sekcji najwyższego poziomu<configuration>.Dodaj ten element do tej
<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>Filtr EventTypeFilter przyjmuje jedną z SourceLevels wartości wyliczenia jako
initializeDataatrybut.Zawartość pliku app.config powinna być podobna do następującego kodu 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>Uruchom aplikację w debugerze.
Naciśnij przycisk1.
Aplikacja zapisuje następujące informacje w pliku dziennika aplikacji:
Default Information: 0 : In Button1_ClickDefault Error: 2 : Error in the application.Aplikacja zapisuje mniej informacji do wyników debugowania z powodu bardziej restrykcyjnych filtrów.
Default Error 2 ErrorZamknij aplikację.
Aby uzyskać więcej informacji na temat zmieniania ustawień dziennika po wdrożeniu, zobacz Praca z dziennikami aplikacji.
Zobacz także
- Przewodnik: określanie miejsca, w którym my.Application.Log zapisuje informacje
- Przewodnik: zmiana miejsca, w którym my.Application.Log zapisuje informacje
- Przewodnik: tworzenie niestandardowych odbiorników dzienników
- Instrukcje: zapisywanie komunikatów dziennika
- Przełączniki śledzenia
- Rejestrowanie informacji z aplikacji