Procedura dettagliata: esplorazione di log eventi, origini eventi e voci
Aggiornamento: novembre 2007
In questa procedura dettagliata vengono illustrate le funzionalità principali relative alla registrazione di eventi nell'applicazione Visual Studio. In particolare, vengono illustrate le seguenti operazioni:
Creazione di un componente EventLog.
Scrittura del codice per creare ed eliminare log eventi personalizzati.
Scrittura di voci di vario tipo nel log personalizzato.
Lettura di voci del log personalizzato.
Verifica dell'esistenza di log e di origini eventi.
Cancellazione di voci dal log.
Utilizzo di Esplora server per verificare i risultati delle azioni del log eventi.
Nota: |
---|
Nel computer in uso è possibile che vengano visualizzati nomi o percorsi diversi per alcuni elementi dell'interfaccia utente di Visual Studio nelle istruzioni seguenti. La versione di Visual Studio in uso e le impostazioni configurate determinano questi elementi. Per ulteriori informazioni vedere Impostazioni di Visual Studio. |
Creazione dell'interfaccia utente
In questa procedura dettagliata verrà creata un'applicazione Windows e verrà utilizzato un insieme di controlli per eseguire diverse operazioni di registrazione di eventi.
Per creare il form e i controlli per l'applicazione
Dalla finestra di dialogo Nuovo progetto creare un'applicazione Windows in Visual Basic o Visual C# e assegnarle il nome EventLogApp1.
Aggiungere al form otto pulsanti e impostare le seguenti proprietà:
Controllo
Proprietà Text
Proprietà Name
Button1
Create Custom Log
CreateLog
Button2
Delete Log
DeleteLog
Button3
Write Entry
WriteEntry
Button4
Cancella log
ClearLog
Button5
Verify Log Exists
VerifyLog
Button6
Verify Source Exists
VerifySource
Button7
Remove Event Source
RemoveSource
Button8
Read Entry
ReadEntry
Per ciascun pulsante eseguire le seguenti operazioni:
Nella finestra di progettazione fare doppio clic sul pulsante per creare un gestore eventi predefinito per tale pulsante. Verrà visualizzato l'editor del codice e uno stub per l'evento Click del pulsante.
Tornare alla visualizzazione Progettazione e fare doppio clic sul pulsante successivo.
Continuare fino a quando non è stato creato uno stub del gestore eventi predefinito per ciascun pulsante.
Dalla scheda Componenti della Casella degli strumenti trascinare un componente EventLog nel form.
Verrà visualizzata un'istanza del componente EventLog nell'area della barra dei componenti nella parte inferiore del form.
Creazione ed eliminazione di un log personalizzato
Nella procedura illustrata di seguito viene utilizzato il metodo SourceExists per verificare che l'origine utilizzata non esista già. Verrà quindi chiamato il metodo CreateEventSource utilizzando il nome di un log inesistente. Dato che tale log non esiste, con l'esecuzione del codice verrà creato dal sistema un log personalizzato.
Per creare il log personalizzato
Nell'editor del codice individuare la routine CreateLog_Click.
Digitare il codice riportato di seguito. Il log eventi e l'origine vengono creati insieme. L'origine non può esistere prima della creazione del log eventi. Dopo la creazione del log eventi, il componente EventLog verrà configurato in modo da potervi accedere.
' Source cannot already exist before creating the log. If EventLog.SourceExists("Source1") Then EventLog.DeleteEventSource("Source1") End If ' Logs and Sources are created as a pair. EventLog.CreateEventSource("Source1", "NewLog1") ' Associate the EventLog component with the new log. EventLog1.Log = "NewLog1" EventLog1.Source = "Source1"
// Source cannot already exist before creating the log. if (System.Diagnostics.EventLog.SourceExists("Source1")) { System.Diagnostics.EventLog.DeleteEventSource("Source1"); } // Logs and Sources are created as a pair. System.Diagnostics.EventLog.CreateEventSource("Source1", "NewLog1"); // Associate the EventLog component with the new log. eventLog1.Log = "NewLog1"; eventLog1.Source = "Source1";
Nota sulla sicurezza: Quando si crea un log eventi, sarà necessario decidere come comportarsi nel caso in cui la risorsa esista già. Un altro processo, magari dannoso, potrebbe avere già creato il log eventi e potrebbe essere in grado di accedervi. Le informazioni inserite nel log eventi diventano disponibili ad altri processi.
Per eliminare un log personalizzato
Nell'editor del codice individuare la routine DeleteLog_Click.
Digitare il codice riportato di seguito.
If EventLog.Exists("NewLog1") Then EventLog.Delete("NewLog1") End If
if (System.Diagnostics.EventLog.Exists("NewLog1")) { System.Diagnostics.EventLog.Delete("NewLog1"); }
Scrittura di voci nel log
Nella procedura illustrata di seguito viene utilizzata l'istanza del componente EventLog creata per scrivere voci nel log. A tale scopo è necessario innanzitutto configurare il componente in modo da utilizzare la stringa di origine appena creata, quindi specificare due voci da scrivere: un evento informativo e un evento di errore.
Per scrivere voci nel log
Nell'editor del codice individuare la routine WriteEntry_Click.
Digitare il codice riportato di seguito. Per scrivere nel log eventi, viene utilizzato il metodo di overload WriteEntry. Il secondo form mostrato consente di specificare il tipo di messaggio. Se si visualizzano le voci utilizzando Esplora server come indicato più avanti nella sezione "Verifica del codice", i diversi tipi di voci verranno contrassegnati da icone diverse.
EventLog1.WriteEntry("This is an informational message") EventLog1.WriteEntry("This is an error message", _ Diagnostics.EventLogEntryType.Error)
eventLog1.WriteEntry("This is an informational message"); eventLog1.WriteEntry("This is an error message", System.Diagnostics.EventLogEntryType.Error);
Cancellazione di voci dal log
Nella procedura illustrata di seguito viene utilizzato il metodo Clear per rimuovere le voci esistenti dal log personalizzato.
Per cancellare voci dal log
Nell'editor del codice individuare la routine ClearLog_Click.
Chiamare il metodo Clear sull'istanza del componente EventLog:
EventLog1.Clear()
eventLog1.Clear();
Verifica di log e origini
Nella procedura illustrata di seguito vengono create due routine, una per la verifica dell'esistenza del log personalizzato e l'altra per la verifica dell'esistenza della stringa di origine. Queste routine verranno utilizzate per verificare i risultati di varie operazioni effettuate durante l'esecuzione del progetto.
Per verificare l'esistenza del log personalizzato
Nell'editor del codice individuare la routine VerifyLog_Click.
Creare una finestra di messaggio per la valutazione dell'esistenza del log eventi specificato e la visualizzazione dei valori true o false in base al risultato ottenuto. Utilizzare il seguente codice:
Dim logExists As Boolean = EventLog.Exists("NewLog1") MessageBox.Show("Does the log exist? " & logExists.ToString())
bool logExists = System.Diagnostics.EventLog.Exists("NewLog1"); MessageBox.Show("Does the log exist? " + logExists.ToString());
Per verificare l'esistenza dell'origine
Nell'editor del codice individuare la routine VerifySource_Click.
Creare una finestra di messaggio per la valutazione dell'esistenza dell'origine specificata e la visualizzazione del valore true o false in base al risultato ottenuto. Utilizzare il seguente codice:
Dim sourceExists As Boolean = EventLog.SourceExists("Source1") MessageBox.Show("Does the source exist? " + sourceExists.ToString())
bool sourceExists = System.Diagnostics.EventLog.SourceExists("Source1"); MessageBox.Show("Does the source exist? " + sourceExists.ToString());
Rimozione di origini
Nella procedura illustrata di seguito viene creato un codice per l'eliminazione della stringa di origine. A tale scopo, è necessario innanzitutto verificare che l'origine in questione (Source1) esista, quindi chiamare il metodo DeleteEventSource per rimuoverla.
Per rimuovere l'origine dell'evento creata
Nell'editor del codice individuare la routine RemoveSource_Click.
Aggiungere il codice riportato di seguito.
If EventLog.SourceExists("Source1") Then EventLog.DeleteEventSource("Source1") End If
if (System.Diagnostics.EventLog.SourceExists("Source1")) { System.Diagnostics.EventLog.DeleteEventSource("Source1"); }
Lettura di voci
Nella procedura illustrata di seguito viene creato un codice per scorrere le voci del log eventi e visualizzare i messaggi esistenti nel log.
Per leggere le voci del log personalizzato creato
Nell'editor del codice individuare la routine ReadEntry_Click.
Aggiungere il codice riportato di seguito.
Dim entry As EventLogEntry If EventLog1.Entries.Count > 0 Then For Each entry In EventLog1.Entries System.Windows.Forms.MessageBox.Show(entry.Message) Next Else MessageBox.Show("There are no entries in the log.") End If
if (eventLog1.Entries.Count > 0) { foreach (System.Diagnostics.EventLogEntry entry in eventLog1.Entries) { MessageBox.Show(entry.Message); } } else { MessageBox.Show("There are no entries in the log."); }
Verifica del codice
In questa sezione Esplora server viene utilizzato per verificare i risultati del codice.
Per avviare Esplora server
Scegliere Esplora server dal menu Visualizza.
Espandere il nodo del server corrente, quindi espandere il nodo Log eventi sottostante.
Per compilare ed eseguire l'applicazione
Salvare i file e premere F5 per compilare e avviare il progetto. Verrà visualizzato il form con gli otto pulsanti creati.
Fare clic sul pulsante Create Custom Log.
Nota: Per poter creare i log eventi di Windows è necessario disporre delle autorizzazioni appropriate per il server in cui viene eseguita l'applicazione. Se in questa fase viene visualizzato un messaggio di errore di sicurezza, contattare l'amministratore di sistema.
Tornare al prodotto durante l'esecuzione e fare clic con il pulsante destro del mouse sul nodo Log eventi in Esplora server.
Fare clic su Aggiorna.
Verificare che venga visualizzato il log NewLog1 nel nodo Log eventi.
Per controllare la creazione, l'eliminazione e la verifica dei log personalizzati
Tornare al form in esecuzione e fare clic sul pulsante Verify Log Exists.
Verrà visualizzato un messaggio di richiesta di conferma con il testo impostato su "True".
Fare clic sul pulsante Delete log, quindi fare nuovamente clic sul pulsante Verify Log Exists.
Nel messaggio di richiesta verrà ora visualizzato "False".
Fare clic sul pulsante Create Custom Log per ricreare il log.
Per controllare la scrittura e la lettura di voci nel log personalizzato
All'interno del form fare clic sul pulsante Write Entry.
Accedere a Esplora server ed espandere il log NewLog1.
Espandere il nodo Source1 sottostante.
Verranno visualizzate le due voci aggiunte al log. Una presenterà un'icona che indica che si tratta di una voce informativa, l'altra presenterà un'icona che indica che si tratta di un errore.
Tornare al form e fare clic sul pulsante Read Entry.
Verranno visualizzate due richieste contenenti, rispettivamente, la voce informativa e l'errore.
Nota: Se si fa clic più volte sul pulsante Write Entry verranno visualizzate più richieste.
Per controllare la cancellazione del log
All'interno del form fare clic sul pulsante Clear log.
In Esplora server fare clic con il pulsante destro del mouse sul nodo NewLog1, quindi scegliere Aggiorna.
A questo punto è possibile vedere che il log non contiene più alcuna voce.
Per controllare la rimozione della stringa di origine
All'interno del form fare clic sul pulsante Remove Event Source.
Fare clic sul pulsante Verify Source Exists. Verrà visualizzato il messaggio "False" per segnalare che l'origine Source1 non esiste più.
Fare clic sul pulsante Write Entry.
Nota: Questa operazione consente di scrivere voci nel log, poiché il metodo WriteEntry imposta l'origine nel caso in cui non esistesse.
In Esplora server fare clic con il pulsante destro del mouse sul nodo NewLog1, quindi scegliere Aggiorna. Verranno visualizzate due voci nel log.
Fare nuovamente clic sul pulsante Verify Source Exists. Verrà visualizzato il messaggio "True" per segnalare che l'origine Source1 esiste.
Se lo si desidera, al termine della verifica si potrà utilizzare il pulsante DeleteLog per rimuovere il log NewLog1 e l'origine Source1, in modo che non venga apportata alcuna modifica permanente alla configurazione del sistema.
Vedere anche
Altre risorse
Procedure dettagliate: monitoraggio del sistema
Registrazione di eventi di applicazioni, server e protezione