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.
Questa procedura dettagliata illustra come modificare il filtro di log predefinito per l'oggetto My.Application.Log
per controllare quali informazioni vengono passate dall'oggetto Log
ai listener e quali informazioni vengono scritte dai listener. È possibile modificare il comportamento di registrazione anche dopo la compilazione dell'applicazione, perché le informazioni di configurazione vengono archiviate nel file di configurazione dell'applicazione.
Come iniziare
Ogni messaggio che My.Application.Log
scrive ha un livello di gravità associato, che i meccanismi di filtraggio usano per controllare l'output del log. Questa applicazione di esempio usa metodi My.Application.Log
per scrivere diversi messaggi di log con livelli di gravità diversi.
Per compilare l'applicazione di esempio
Aprire un nuovo progetto applicazione Windows di Visual Basic.
Aggiungere un pulsante denominato Button1 a Form1.
Click Nel gestore eventi per Button1 aggiungere il codice seguente:
' 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)
Eseguire l'applicazione nel debugger.
Premere Button1.
L'applicazione scrive le informazioni seguenti nell'output di debug e nel file di log dell'applicazione.
DefaultSource Information: 0 : In Button1_Click
DefaultSource Error: 2 : Error in the application.
Chiudere l'applicazione.
Per informazioni su come visualizzare la finestra di output di debug dell'applicazione, vedere Finestra di output. Per informazioni sul percorso del file di log dell'applicazione, vedere Procedura dettagliata: Determinazione della posizione in cui my.application.log scrive informazioni.
Annotazioni
Per impostazione predefinita, l'applicazione scarica l'output del file di log alla chiusura dell'applicazione.
Nell'esempio precedente, la chiamata al metodo WriteEntry e la chiamata al metodo WriteException generano l'output di log, mentre la prima e l'ultima chiamata al metodo
WriteEntry
non lo fanno. Ciò è dovuto al fatto che i livelli di gravità diWriteEntry
eWriteException
sono "Information" e "Error", entrambi consentiti dalMy.Application.Log
filtro di log predefinito dell'oggetto. Tuttavia, gli eventi con livelli di gravità "Start" e "Stop" non riescono a generare output del log.
Filtro per tutti i listener My.Application.Log
L'oggetto My.Application.Log
utilizza un SourceSwitch denominato DefaultSwitch
per determinare quali messaggi vengono passati dai metodi WriteEntry
e WriteException
ai listener di log. È possibile configurare DefaultSwitch
nel file di configurazione dell'applicazione impostandone il valore su uno dei SourceLevels valori di enumerazione. Per impostazione predefinita, il valore è "Information".
Questa tabella mostra il livello di gravità necessario affinché il Log scriva un messaggio agli ascoltatori, in base a una specifica impostazione DefaultSwitch
.
Valore DefaultSwitch | Gravità del messaggio necessaria per l'output |
---|---|
Critical |
Critical |
Error |
Critical o Error |
Warning |
Critical , Error o Warning |
Information |
Critical , Error , Warning o Information |
Verbose |
Critical , Error , Warning , Information o Verbose |
ActivityTracing |
Start , Stop , Suspend , Resume o Transfer |
All |
Tutti i messaggi sono consentiti. |
Off |
Tutti i messaggi vengono bloccati. |
Annotazioni
I metodi WriteEntry
e WriteException
dispongono ciascuno di un overload che non specifica un livello di gravità. Il livello di gravità implicito per l'overload WriteEntry
è "Information" e il livello di gravità implicito per l'overload WriteException
è "Error".
Questa tabella illustra l'output del log mostrato nell'esempio precedente: con l'impostazione predefinita DefaultSwitch
"Information", solo la seconda chiamata al metodo WriteEntry
e la chiamata al metodo WriteException
generano l'output del log.
Per registrare solo gli eventi di tracciamento delle attività
Fare clic con il pulsante destro del mouse app.config in Esplora soluzioni e scegliere Apri.
oppure
Se non è presente alcun file app.config:
Scegliere Aggiungi nuovo elemento dal menu Progetto.
Nella finestra di dialogo Aggiungi nuovo elemento scegliere File di configurazione dell'applicazione.
Fare clic su Aggiungi.
Individuare la sezione
<switches>
all'interno della sezione<system.diagnostics>
, che si trova nella sezione principale<configuration>
.Trova l'elemento che aggiunge
DefaultSwitch
alla raccolta di interruttori. Dovrebbe essere simile a questo elemento:<add name="DefaultSwitch" value="Information" />
Modificare il valore dell'attributo
value
in "ActivityTracing".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"/> </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>
Eseguire l'applicazione nel debugger.
Premere Button1.
L'applicazione scrive le informazioni seguenti nell'output di debug e nel file di log dell'applicazione:
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
Chiudere l'applicazione.
Modificare di nuovo il valore dell'attributo
value
in "Information".Annotazioni
L'impostazione del switch
DefaultSwitch
controlla soloMy.Application.Log
. Non cambia il comportamento delle classi .NET System.Diagnostics.Trace e System.Diagnostics.Debug.
Filtro individuale per gli ascoltatori di My.Application.Log
Nell'esempio precedente viene illustrato come modificare il filtro per tutti gli My.Application.Log
output. In questo esempio viene illustrato come filtrare un singolo listener di log. Per impostazione predefinita, un'applicazione dispone di due listener che scrivono nell'output di debug dell'applicazione e nel file di log.
Il file di configurazione controlla il comportamento dei listener di log consentendo a ognuno di essi di avere un filtro, simile a un commutatore per My.Application.Log
. Un listener di log restituirà un messaggio solo se la gravità del messaggio è consentita sia dal DefaultSwitch
del log che dal filtro del listener del log.
In questo esempio viene illustrato come configurare il filtro per un nuovo listener di debug e aggiungerlo all'oggetto Log
. Il listener di debug predefinito deve essere rimosso dall'oggetto Log
, quindi è chiaro che i messaggi di debug provengono dal nuovo listener di debug.
Per registrare solo gli eventi di monitoraggio delle attività
Fare clic con il pulsante destro del mouse app.config in Esplora soluzioni e scegliere Apri.
oppure
Se non è presente alcun file app.config:
Scegliere Aggiungi nuovo elemento dal menu Progetto.
Nella finestra di dialogo Aggiungi nuovo elemento scegliere File di configurazione dell'applicazione.
Fare clic su Aggiungi.
Fare clic con il pulsante destro del mouse su app.config in Esplora soluzioni. Scegliere Apri.
Individua la sezione
<listeners>
nella sezione<source>
con l'attributoname
"DefaultSource", che si trova sotto la sezione<sources>
. La<sources>
sezione si trova sotto la<system.diagnostics>
sezione , nella sezione di primo livello<configuration>
.Aggiungere questo elemento alla
<listeners>
sezione :<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>
Individuare la sezione
<sharedListeners>
nella sezione<system.diagnostics>
nella sezione di primo livello<configuration>
.Aggiungere questo elemento a tale
<sharedListeners>
sezione:<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>
Il EventTypeFilter filtro accetta uno dei SourceLevels valori di enumerazione come
initializeData
attributo.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"/> <!-- 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>
Eseguire l'applicazione nel debugger.
Premere Button1.
L'applicazione scrive le informazioni seguenti nel file di log dell'applicazione:
Default Information: 0 : In Button1_Click
Default Error: 2 : Error in the application.
L'applicazione scrive meno informazioni nell'output di debug dell'applicazione a causa del filtro più restrittivo.
Default Error 2 Error
Chiudere l'applicazione.
Per altre informazioni sulla modifica delle impostazioni di log dopo la distribuzione, vedere Uso dei log applicazioni.
Vedere anche
- Procedura dettagliata: determinazione della posizione in cui my.application.log scrive le informazioni
- Procedura dettagliata: Modifica della posizione in cui my.application.log scrive le informazioni
- Procedura dettagliata: Creazione di listener di log personalizzati
- Procedura: Scrivere messaggi di log
- Interruttori di traccia
- Registrazione delle informazioni dall'applicazione