Tutorial: Explorar los registros de eventos, los orígenes de eventos y las entradas
Actualización: noviembre 2007
Este tutorial le guiará a través de las principales áreas funcionales del registro de eventos en una aplicación de Visual Studio. Durante este tutorial, aprenderá a hacer lo siguiente:
Crear un componente EventLog.
Escribir código para crear y eliminar registros de eventos personalizados.
Escribir entradas de varios tipos en el registro personalizado.
Leer entradas del registro personalizado.
Comprobar que existen registros y orígenes de eventos.
Borrar entradas de registro.
Utilizar el Explorador de servidores para comprobar los resultados de las acciones de registro de eventos.
Nota: |
---|
Es posible que su equipo muestre nombres o ubicaciones diferentes para algunos de los elementos de la interfaz de usuario de Visual Studio incluidos en las instrucciones siguientes. La edición de Visual Studio que se tenga y la configuración que se utilice determinan estos elementos. Para obtener más información, vea Valores de configuración de Visual Studio. |
Crear la interfaz de usuario
En este tutorial, creará una aplicación para Windows y usará distintos controles para iniciar una serie de acciones de registro de eventos.
Para crear el formulario y los controles para la aplicación
Desde el cuadro de diálogo Nuevo proyecto, cree una Aplicación para WindowsVisual Basic o Visual C#, y asígnele el nombre EventLogApp1.
Agregue ocho botones al formulario y defina las siguientes propiedades para ellos:
Control
Propiedad Text
Propiedad Name
Button1
Crear registro personalizado
CreateLog
Button2
Eliminar registro
DeleteLog
Button3
Escribir entrada
WriteEntry
Button4
Borrar registro
ClearLog
Button5
Comprobar que existe el registro
VerifyLog
Button6
Comprobar que existe el origen
VerifySource
Button7
Quitar origen de evento
RemoveSource
Button8
Leer entrada
ReadEntry
A continuación, haga lo siguiente con cada botón:
En el diseñador, haga doble clic en el botón para crear un controlador de eventos predeterminado para el botón. Se abrirá el Editor de código y aparecerá un código auxiliar para el evento Click del botón.
Vuelva a la vista Diseño y haga doble clic en el siguiente botón.
Continúe hasta haber creado un procedimiento stub de controlador de eventos predeterminado para cada uno de los botones.
En la ficha Componentes del Cuadro de herramientas, arrastre un componente EventLog hasta el formulario.
Aparecerá una instancia del componente EventLog en el área de bandeja de componentes, en la parte inferior del formulario.
Crear y eliminar un registro personalizado
En este procedimiento, utilizará el método SourceExists para comprobar que el origen que va a utilizar ya no existe; a continuación, llamará al método CreateEventSource utilizando el nombre de un registro que no existe. Puesto que este registro no existe, el sistema creará un registro personalizado cuando se ejecute el código.
Para crear el registro personalizado
En el Editor de código, busque el procedimiento CreateLog_Click.
Escriba el código siguiente. El origen y el registro de eventos se crean como un par y el origen no puede existir antes de que se cree el registro de eventos. Tras crear el registro de eventos, se configura el componente EventLog para tener acceso al nuevo registro de eventos.
' 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 de seguridad: Cuando cree un registro de eventos, tendrá que decidir qué hacer si ese recurso ya existe. Es posible que otro proceso, probablemente malintencionado, haya creado el registro de eventos y tenga acceso a él. Cuando ponga datos en el registro de eventos, los datos estarán disponibles para el otro proceso.
Para eliminar un registro personalizado
En el Editor de código, busque el procedimiento DeleteLog_Click.
Escriba el código siguiente:
If EventLog.Exists("NewLog1") Then EventLog.Delete("NewLog1") End If
if (System.Diagnostics.EventLog.Exists("NewLog1")) { System.Diagnostics.EventLog.Delete("NewLog1"); }
Escribir entradas en el registro
En este procedimiento, utilizará la instancia del componente EventLog que creó para escribir entradas en el registro. Para ello, primero configure el componente que va a utilizar la cadena de origen que acaba de crear. A continuación, especificará dos entradas para escribirlas en el registro: un evento informativo y un evento de error.
Para escribir entradas en el registro
En el Editor de código, busque el procedimiento WriteEntry_Click.
Escriba el código siguiente. Este código utiliza el método WriteEntry sobrecargado para escribir en el registro de eventos. El segundo formulario mostrado permite especificar el tipo de mensaje. Si ve las entradas con el Explorador de servidores de la sección "Probar el código" más adelante en este tema, los diferentes tipos de entradas se indican con iconos diferentes.
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);
Borrar entradas de registro
En este procedimiento, utilizará el método Clear para eliminar las entradas existentes del registro personalizado.
Para borrar entradas de registro
En el Editor de código, busque el procedimiento ClearLog_Click.
Llame al método Clear de la instancia del componente EventLog:
EventLog1.Clear()
eventLog1.Clear();
Comprobar registros y orígenes
En este procedimiento, creará dos procedimientos: uno que comprueba que existe el registro personalizado y uno que comprueba que existe la cadena de origen. Estos procedimientos se utilizarán para comprobar los resultados de diferentes acciones que se ejecutan al ejecutar el proyecto.
Para comprobar que el registro personalizado existe
En el Editor de código, busque el procedimiento VerifyLog_Click.
Cree un cuadro de mensaje que evalúe si existe el registro de eventos especificado y muestre verdadero o falso según el resultado. Utilice este código:
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());
Para comprobar que el origen existe
En el Editor de código, busque el procedimiento VerifySource_Click.
Cree un cuadro de mensaje que evalúe si existe el origen especificado y muestre verdadero o falso según el resultado. Utilice este código:
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());
Quitar orígenes
En este procedimiento, escribirá código para eliminar una cadena de origen. Para ello, comprobará primero que el origen en cuestión (Source1) existe y, a continuación, llamará al método DeleteEventSource para quitarlo.
Para quitar el origen de eventos creado
En el Editor de código, busque el procedimiento RemoveSource_Click.
Agregue el código siguiente:
If EventLog.SourceExists("Source1") Then EventLog.DeleteEventSource("Source1") End If
if (System.Diagnostics.EventLog.SourceExists("Source1")) { System.Diagnostics.EventLog.DeleteEventSource("Source1"); }
Leer entradas
En este procedimiento, escribirá código para recorrer en iteración la colección de entradas del registro de eventos y mostrar los mensajes existentes en el registro.
Para leer entradas del registro personalizado creado
En el Editor de código, busque el procedimiento ReadEntry_Click.
Agregue el código siguiente:
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."); }
Probar el código
En esta sección, utilizará el Explorador de servidores para comprobar los resultados del código.
Para iniciar el Explorador de servidores
En el menú Ver, vaya al Explorador de servidores.
Expanda el nodo del servidor actual y, a continuación, expanda el nodo Registros de eventos situado debajo de él.
Para generar y ejecutar aplicaciones
Guarde los archivos y presione F5 para generar e iniciar el proyecto. Aparecerá el formulario con los ocho botones creados.
Haga clic en el botón Crear registro personalizado.
Nota: Para crear registros de eventos de Windows, deberá tener los permisos necesarios en el servidor en el que se ejecuta la aplicación. Si en este momento recibe un error de seguridad, consulte al administrador del sistema.
Vuelva al producto mientras se encuentra en modo de ejecución y haga clic con el botón secundario del mouse en el nodo Registros de eventos del Explorador de servidores.
Haga clic en Actualizar.
Compruebe que el registro NewLog1 aparece ahora en el nodo Registros de eventos.
Para probar la creación, eliminación y comprobación de registros personalizados
Vuelva al formulario en ejecución y haga clic en el botón Comprobar que existe el registro.
Debe aparecer un mensaje con el texto establecido en "Verdadero".
Haga clic en el botón Eliminar registro y, a continuación, haga clic otra vez en el botón Comprobar que existe el registro.
Esta vez, el mensaje debe indicar "Falso".
Haga clic otra vez en el botón Crear registro personalizado para crear de nuevo el registro.
Para probar la escritura y lectura de entradas en el registro personalizado
En el formulario, haga clic en el botón Escribir entrada.
Vaya al Explorador de servidores y expanda el registro NewLog1.
Expanda el nodo Source1 que se encuentra debajo de él.
Deberá ver que se agregaron dos entradas al registro. Una tendrá un icono que indica que se trata de una entrada informativa y la otra tendrá un icono que indica que es un error.
Vuelva al formulario y haga clic en el botón Leer entrada.
Recibirá dos mensajes: uno que contiene la entrada informativa y otro que contiene la entrada de error.
Nota: Si hace clic varias veces en el botón Escribir entrada, recibirá más mensajes.
Para probar el borrado del registro
En el formulario, haga clic en el botón Eliminar registro.
En el Explorador de servidores, haga clic con el botón secundario del mouse en el nodo NewLog1 y, a continuación, haga clic en Actualizar.
Deberá ver que el registro ya no contiene entradas.
Para probar la eliminación de la cadena de origen
En el formulario, haga clic en el botón Quitar origen de evento.
Haga clic en el botón Comprobar que existe el origen. Debería recibir un mensaje con el texto "False", lo que indica que el origen Source1 ya no existe.
Haga clic en el botón Escribir entrada.
Nota: Esta acción le permitirá escribir entradas en el registro, porque el método WriteEntry establecerá el origen si aún no existe.
En el Explorador de servidores, haga clic con el botón secundario del mouse en el nodo NewLog1 y, a continuación, haga clic en Actualizar. Debe ver dos entradas en el registro.
Haga clic otra vez en el botón Comprobar que existe el origen. Debe recibir un mensaje con el texto "True", lo que indica que el origen Source1 existe.
Si lo desea, puede hacer clic en el botón DeleteLog durante la prueba. De esta forma, se eliminará el registro NewLog1 y el origen Source1 para que no haya cambios permanentes en la configuración del sistema.