Condividi tramite


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

  1. Dalla finestra di dialogo Nuovo progetto creare un'applicazione Windows in Visual Basic o Visual C# e assegnarle il nome EventLogApp1.

  2. 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

  3. Per ciascun pulsante eseguire le seguenti operazioni:

    1. 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.

    2. Tornare alla visualizzazione Progettazione e fare doppio clic sul pulsante successivo.

    3. Continuare fino a quando non è stato creato uno stub del gestore eventi predefinito per ciascun pulsante.

  4. 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

  1. Nell'editor del codice individuare la routine CreateLog_Click.

  2. 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

  1. Nell'editor del codice individuare la routine DeleteLog_Click.

  2. 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

  1. Nell'editor del codice individuare la routine WriteEntry_Click.

  2. 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

  1. Nell'editor del codice individuare la routine ClearLog_Click.

  2. 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

  1. Nell'editor del codice individuare la routine VerifyLog_Click.

  2. 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

  1. Nell'editor del codice individuare la routine VerifySource_Click.

  2. 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

  1. Nell'editor del codice individuare la routine RemoveSource_Click.

  2. 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

  1. Nell'editor del codice individuare la routine ReadEntry_Click.

  2. 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

  1. Scegliere Esplora server dal menu Visualizza.

  2. Espandere il nodo del server corrente, quindi espandere il nodo Log eventi sottostante.

Per compilare ed eseguire l'applicazione

  1. Salvare i file e premere F5 per compilare e avviare il progetto. Verrà visualizzato il form con gli otto pulsanti creati.

  2. 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.

  3. Tornare al prodotto durante l'esecuzione e fare clic con il pulsante destro del mouse sul nodo Log eventi in Esplora server.

  4. Fare clic su Aggiorna.

  5. Verificare che venga visualizzato il log NewLog1 nel nodo Log eventi.

Per controllare la creazione, l'eliminazione e la verifica dei log personalizzati

  1. 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".

  2. Fare clic sul pulsante Delete log, quindi fare nuovamente clic sul pulsante Verify Log Exists.

    Nel messaggio di richiesta verrà ora visualizzato "False".

  3. Fare clic sul pulsante Create Custom Log per ricreare il log.

Per controllare la scrittura e la lettura di voci nel log personalizzato

  1. All'interno del form fare clic sul pulsante Write Entry.

  2. Accedere a Esplora server ed espandere il log NewLog1.

  3. 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.

  4. 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

  1. All'interno del form fare clic sul pulsante Clear log.

  2. 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

  1. All'interno del form fare clic sul pulsante Remove Event Source.

  2. Fare clic sul pulsante Verify Source Exists. Verrà visualizzato il messaggio "False" per segnalare che l'origine Source1 non esiste più.

  3. 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.

  4. In Esplora server fare clic con il pulsante destro del mouse sul nodo NewLog1, quindi scegliere Aggiorna. Verranno visualizzate due voci nel log.

  5. Fare nuovamente clic sul pulsante Verify Source Exists. Verrà visualizzato il messaggio "True" per segnalare che l'origine Source1 esiste.

  6. 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