Wskazówki: zmienianie, gdzie My.Application.Log zapisuje informacje (Visual Basic)
Obiekty i My.Log
umożliwiają My.Application.Log
rejestrowanie informacji o zdarzeniach występujących w aplikacji. W tym przewodniku pokazano, jak zastąpić ustawienia domyślne i spowodować Log
zapisanie obiektu w innych odbiornikach dziennika.
Wymagania wstępne
Obiekt Log
może zapisywać informacje w kilku odbiornikach dziennika. Przed zmianą konfiguracji należy określić bieżącą konfigurację odbiorników dziennika. Aby uzyskać więcej informacji, zobacz Przewodnik: określanie, gdzie my.Application.Log zapisuje informacje.
Warto zapoznać się z tematem Instrukcje: zapisywanie informacji o zdarzeniach w pliku tekstowym lub Instrukcje: zapisywanie w dzienniku zdarzeń aplikacji.
Aby dodać odbiorniki
Kliknij prawym przyciskiem myszy plik app.config w Eksplorator 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ę
<listeners>
w<source>
sekcji z atrybutemname
"DefaultSource" w<sources>
sekcji . Sekcja<sources>
znajduje się<system.diagnostics>
w sekcji w sekcji najwyższego poziomu<configuration>
.Dodaj te elementy do tej
<listeners>
sekcji.<!-- Uncomment to connect the application file log. --> <!-- <add name="FileLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="EventLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="Delimited" /> --> <!-- Uncomment to connect the XML log. --> <!-- <add name="XmlWriter" /> --> <!-- Uncomment to connect the console log. --> <!-- <add name="Console" /> -->
Usuń komentarz z odbiorników dziennika, które mają odbierać
Log
komunikaty.Znajdź sekcję
<sharedListeners>
w<system.diagnostics>
sekcji w sekcji najwyższego poziomu<configuration>
.Dodaj te elementy do tej
<sharedListeners>
sekcji.<add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a" initializeData="FileLogWriter" /> <add name="EventLog" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="sample application"/> <add name="Delimited" type="System.Diagnostics.DelimitedListTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleDelimitedFile.txt" traceOutputOptions="DateTime" /> <add name="XmlWriter" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleLogFile.xml" /> <add name="Console" type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="true" />
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"/> <!-- Uncomment to connect the application file log. --> <!-- <add name="FileLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="EventLog" /> --> <!-- Uncomment to connect the event log. --> <!-- <add name="Delimited" /> --> <!-- Uncomment to connect the XML log. --> <!-- <add name="XmlWriter" /> --> <!-- Uncomment to connect the console log. --> <!-- <add name="Console" /> --> </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" initializeData="FileLogWriter" /> <add name="EventLog" type="System.Diagnostics.EventLogTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="sample application"/> <add name="Delimited" type="System.Diagnostics.DelimitedListTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleDelimitedFile.txt" traceOutputOptions="DateTime" /> <add name="XmlWriter" type="System.Diagnostics.XmlWriterTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="c:\temp\sampleLogFile.xml" /> <add name="Console" type="System.Diagnostics.ConsoleTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089" initializeData="true" /> </sharedListeners> </system.diagnostics> </configuration>
Aby ponownie skonfigurować odbiornik
Znajdź element odbiornika
<add>
w<sharedListeners>
sekcji .Atrybut
type
nadaje nazwę typu odbiornika. Ten typ musi dziedziczyć z TraceListener klasy. Użyj nazwy silnie nazwanego typu, aby upewnić się, że jest używany właściwy typ. Aby uzyskać więcej informacji, zobacz sekcję "Aby odwołać się do silnie nazwanego typu" poniżej.Niektóre typy, których można użyć, to:
Odbiornik Microsoft.VisualBasic.Logging.FileLogTraceListener , który zapisuje w dzienniku plików.
Odbiornik System.Diagnostics.EventLogTraceListener , który zapisuje informacje w dzienniku zdarzeń komputera określony przez
initializeData
parametr .Odbiorniki System.Diagnostics.DelimitedListTraceListener i System.Diagnostics.XmlWriterTraceListener , które zapisują w pliku określonym w parametrze
initializeData
.Odbiornik System.Diagnostics.ConsoleTraceListener , który zapisuje w konsoli wiersza polecenia.
Aby uzyskać informacje o tym, gdzie inne typy odbiorników dzienników zapisują informacje, zapoznaj się z dokumentacją tego typu.
Gdy aplikacja tworzy obiekt log-listener, przekazuje
initializeData
atrybut jako parametr konstruktora. Znaczenie atrybutuinitializeData
zależy od odbiornika śledzenia.Po utworzeniu odbiornika dziennika aplikacja ustawia właściwości odbiornika. Te właściwości są definiowane przez inne atrybuty w elemecie
<add>
. Aby uzyskać więcej informacji na temat właściwości określonego odbiornika, zobacz dokumentację dla typu tego odbiornika.
Aby odwołać się do silnie nazwanego typu
Aby upewnić się, że odpowiedni typ jest używany dla odbiornika dziennika, upewnij się, że używasz w pełni kwalifikowanej nazwy typu i silnie nazwanego zestawu. Składnia silnie nazwanego typu jest następująca:
<nazwa typu, <nazwa>> zestawu, <numer> wersji, <kultura>, <silna nazwa>
W tym przykładzie kodu pokazano, jak określić nazwę silnie nazwanego typu dla w pełni kwalifikowanego typu "System.Diagnostics.FileLogTraceListener" w tym przypadku.
Public Sub DisplayStrongName() Dim t As Type = GetType(Logging.FileLogTraceListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
Jest to dane wyjściowe i może służyć do unikatowego odwołowania się do silnie nazwanego typu, jak w powyższej procedurze "Aby dodać odbiorniki".
Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a