Nota
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare ad accedere o modificare le directory.
L'accesso a questa pagina richiede l'autorizzazione. È possibile provare a modificare le directory.
È possibile usare gli My.Application.Log
oggetti e My.Log
per registrare informazioni sugli eventi che si verificano nell'applicazione. Questa procedura dettagliata illustra come eseguire l'override delle impostazioni predefinite e fare in modo che l'oggetto Log
scriva in altri listener di log.
Prerequisiti
L'oggetto Log
può scrivere informazioni in diversi listener di log. È necessario determinare la configurazione corrente dei listener di log prima di modificare le configurazioni. Per altre informazioni, vedere Procedura dettagliata: Determinazione della posizione in cui My.Application.Log scrive informazioni.
È possibile consultare Procedura: Scrivere informazioni sugli eventi in un file di testo o Procedura: Scrivere in un registro eventi dell'applicazione.
Per aggiungere ascoltatori
Fare clic con il pulsante destro del mouse app.config in Esplora soluzioni e scegliere Apri.
- o -
Se non è presente alcun file app.config:
Scegliere Aggiungi nuovo elemento dal menu Progetto.
Nella finestra di dialogo Aggiungi nuovo elemento selezionare File di configurazione dell'applicazione.
Fare clic su Aggiungi.
Individuare la sezione
<listeners>
nella sezione<source>
con l'attributoname
"DefaultSource", nella sezione<sources>
. La sezione<sources>
si trova nella sezione<system.diagnostics>
, che è nella sezione di primo livello<configuration>
.Aggiungere questi elementi a tale
<listeners>
sezione.<!-- 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" /> -->
Decommenta i listener di log da cui desideri ricevere i messaggi
Log
.Individuare la sezione
<sharedListeners>
nella sezione<system.diagnostics>
nella sezione di primo livello<configuration>
.Aggiungere questi elementi a tale
<sharedListeners>
sezione.<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" />
Il contenuto del file app.config dovrebbe essere simile al codice XML seguente:
<?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>
Per riconfigurare un listener
Individua l'elemento
<add>
del listener dalla sezione<sharedListeners>
.L'attributo
type
assegna il nome del tipo di listener. Questo tipo deve ereditare dalla TraceListener classe . Utilizzare il nome del tipo con firma forte per garantire che venga usato il tipo corretto. Per ulteriori informazioni, vedere di seguito la sezione "Per fare riferimento a un tipo nominato fortemente".Alcuni tipi che è possibile usare sono:
Listener Microsoft.VisualBasic.Logging.FileLogTraceListener, che scrive in un file di log.
Il listener System.Diagnostics.EventLogTraceListener, che scrive informazioni nel registro eventi del computer specificato dal parametro
initializeData
.I listener System.Diagnostics.DelimitedListTraceListener e System.Diagnostics.XmlWriterTraceListener che scrivono nel file specificato nel parametro
initializeData
.Un listener System.Diagnostics.ConsoleTraceListener, che scrive nella console della riga di comando.
Per informazioni su dove altri tipi di listener di log scrivono informazioni, consultare la documentazione di quel tipo.
Quando l'applicazione crea l'oggetto log-listener, passa l'attributo
initializeData
come parametro del costruttore. Il significato dell'attributoinitializeData
dipende dal listener di traccia.Dopo aver creato il listener di log, l'applicazione ne imposta le proprietà. Queste proprietà sono definite dagli altri attributi nell'elemento
<add>
. Per altre informazioni sulle proprietà per un listener specifico, vedere la documentazione relativa al tipo del listener.
Per fare riferimento a un tipo con nome forte
Per garantire l'uso del tipo corretto per il listener di log, è importante utilizzare il nome completo del tipo e il nome dell'assembly fortemente nominato. La sintassi di un tipo fortemente denominato è la seguente:
< nome del tipo>, <nome dell'assembly>, <numero di versione>, <cultura>, <nome sicuro>
In questo esempio di codice viene illustrato come determinare il nome del tipo con un nome forte per un tipo completamente qualificato, ovvero "System.Diagnostics.FileLogTraceListener" in questo caso.
Public Sub DisplayStrongName() Dim t As Type = GetType(Logging.FileLogTraceListener) MsgBox(t.FullName & ", " & t.Assembly.FullName) End Sub
Si tratta dell'output e può essere usato per fare riferimento in modo univoco a un tipo fortemente nominato, come nella procedura indicata "Per aggiungere ascoltatori" precedente.
Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a