Exportar (0) Imprimir
Expandir todo
Este artículo proviene de un motor de traducción automática. Mueva el puntero sobre las frases del artículo para ver el texto original. Más información.
Traducción
Original

EventLog (Clase)

Proporciona interacción con los registros de eventos de Windows.

Espacio de nombres:  System.Diagnostics
Ensamblado:  System (en System.dll)

public class EventLog : Component, ISupportInitialize

El tipo EventLog expone los siguientes miembros.

  NombreDescripción
Método públicoEventLog()Inicializa una nueva instancia de la clase EventLog. No asocia la instancia a ningún registro.
Método públicoEventLog(String)Inicializa una nueva instancia de la clase EventLog. Asocia la instancia a un registro del equipo local.
Método públicoEventLog(String, String)Inicializa una nueva instancia de la clase EventLog. Asocia la instancia a un registro en el equipo especificado.
Método públicoEventLog(String, String, String)Inicializa una nueva instancia de la clase EventLog. Asocia la instancia a un registro en el equipo especificado y crea o asigna el origen especificado a EventLog.
Arriba

  NombreDescripción
Propiedad protegidaCanRaiseEventsObtiene un valor que indica si el componente puede generar un evento. (Se hereda de Component).
Propiedad públicaContainerObtiene IContainer que contiene Component. (Se hereda de Component).
Propiedad protegidaDesignModeObtiene un valor que indica si Component está actualmente en modo de diseño. (Se hereda de Component).
Propiedad públicaEnableRaisingEventsObtiene o establece un valor que indica si EventLog recibe notificaciones de eventos EntryWritten.
Propiedad públicaEntriesObtiene el contenido del registro de eventos.
Propiedad protegidaEventsObtiene la lista de controladores de eventos asociados a Component. (Se hereda de Component).
Propiedad públicaLogObtiene o establece el nombre del registro del que se lee o en el que se escribe.
Propiedad públicaLogDisplayNameObtiene el nombre descriptivo del registro de eventos.
Propiedad públicaMachineNameObtiene o establece el nombre del equipo en el que se van a leer o en el que se van a escribir los eventos.
Propiedad públicaMaximumKilobytesObtiene o establece el tamaño máximo del registro de eventos, en kilobytes.
Propiedad públicaMinimumRetentionDaysObtiene el número de días que se deben conservar las entradas en el registro de eventos.
Propiedad públicaOverflowActionObtiene el comportamiento configurado para el almacenamiento de entradas nuevas cuando el registro de eventos haya alcanzado su tamaño máximo de archivo.
Propiedad públicaSiteObtiene o establece ISite de Component. (Se hereda de Component).
Propiedad públicaSourceObtiene o establece el nombre de origen que se va a registrar y utilizar al escribir en el registro de eventos.
Propiedad públicaSynchronizingObjectObtiene o establece el objeto utilizado para calcular las referencias de las llamadas del controlador de eventos emitidas como resultado de un evento escrito en una entrada de EventLog.
Arriba

  NombreDescripción
Método públicoBeginInitComienza la inicialización de un objeto EventLog que se emplea en un formulario o que utiliza otro componente. La inicialización se produce en tiempo de ejecución.
Método públicoClearQuita todas las entradas del registro de eventos.
Método públicoCloseCierra el registro de eventos y libera los identificadores de lectura y escritura.
Método públicoMiembro estáticoCreateEventSource(EventSourceCreationData)Establece un origen de eventos válido para la escritura de mensajes de evento adaptados, mediante las propiedades de configuración especificadas para el origen y el correspondiente registro de eventos.
Método públicoMiembro estáticoCreateEventSource(String, String)Establece, mediante el nombre de origen especificado, una aplicación como origen de eventos válido para la escritura de entradas en un registro del equipo local. Este método también puede crear un nuevo registro personalizado en el equipo local.
Método públicoMiembro estáticoCreateEventSource(String, String, String) Obsoleta. Establece, mediante el nombre de origen especificado, una aplicación como origen de eventos válido para la escritura de entradas en un registro del equipo especificado. Este método puede utilizarse también para crear un nuevo registro personalizado en el equipo especificado.
Método públicoCreateObjRefCrea un objeto que contiene toda la información relevante necesaria para generar un proxy utilizado para comunicarse con un objeto remoto. (Se hereda de MarshalByRefObject).
Método públicoMiembro estáticoDelete(String)Quita un registro de eventos del equipo local.
Método públicoMiembro estáticoDelete(String, String)Quita un registro de eventos del equipo especificado.
Método públicoMiembro estáticoDeleteEventSource(String)Quita del registro de eventos del equipo local el registro del origen de eventos.
Método públicoMiembro estáticoDeleteEventSource(String, String)Quita del equipo especificado el registro del origen de eventos de la aplicación.
Método públicoDispose()Libera todos los recursos utilizados por Component. (Se hereda de Component).
Método protegidoDispose(Boolean)Libera los recursos no administrados que utiliza EventLog y, opcionalmente, libera los recursos administrados. (Invalida a Component.Dispose(Boolean)).
Método públicoEndInitTermina la inicialización de EventLog utilizada en un formulario o empleada por otro componente. La inicialización se produce en tiempo de ejecución.
Método públicoEquals(Object)Determina si el objeto especificado es igual al objeto actual. (Se hereda de Object).
Método públicoMiembro estáticoExists(String)Determina si el registro existe en el equipo local.
Método públicoMiembro estáticoExists(String, String)Determina si el registro existe en el equipo especificado.
Método protegidoFinalizeLibera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el objeto Component durante la recolección de elementos no utilizados. (Se hereda de Component).
Método públicoMiembro estáticoGetEventLogs()Busca todos los registros de eventos en el equipo local y crea una matriz de objetos EventLog que contiene la lista.
Método públicoMiembro estáticoGetEventLogs(String)Busca todos los registros de eventos en el equipo dado y crea una matriz de objetos EventLog que contiene la lista.
Método públicoGetHashCode Sirve como una función hash para un tipo en particular. (Se hereda de Object).
Método públicoGetLifetimeServiceRecupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método protegidoGetServiceDevuelve un objeto que representa el servicio suministrado por Component o por Container. (Se hereda de Component).
Método públicoGetType Obtiene el Typede la instancia actual. (Se hereda de Object).
Método públicoInitializeLifetimeServiceObtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia. (Se hereda de MarshalByRefObject).
Método públicoMiembro estáticoLogNameFromSourceNameObtiene el nombre del registro en el que se registra el origen especificado.
Método protegidoMemberwiseClone() Crea una copia superficial del Object actual. (Se hereda de Object).
Método protegidoMemberwiseClone(Boolean)Crea una copia superficial del objeto MarshalByRefObject actual. (Se hereda de MarshalByRefObject).
Método públicoModifyOverflowPolicyCambia el comportamiento configurado para la escritura de entradas nuevas cuando el registro de eventos alcanza su tamaño máximo de archivo.
Método públicoRegisterDisplayNameEspecifica el nombre adaptado del registro de eventos, que aparece en el Visor de eventos del servidor.
Método públicoMiembro estáticoSourceExists(String)Determina si un origen de eventos está registrado en el equipo local.
Método públicoMiembro estáticoSourceExists(String, String)Determina si un origen de eventos está registrado en un equipo especificado.
Método públicoToStringDevuelve un objeto String que contiene el nombre del objeto Component, en caso de que exista. Este método no debe reemplazarse. (Se hereda de Component).
Método públicoWriteEntry(String)Escribe una entrada de tipo de información, con un texto de mensaje determinado, en el registro de eventos.
Método públicoWriteEntry(String, EventLogEntryType)Escribe en el registro de eventos una entrada de error, advertencia, información, auditoría correcta o auditoría incorrecta con el texto de mensaje dado.
Método públicoMiembro estáticoWriteEntry(String, String)Escribe una entrada de tipo de información con un texto de mensaje determinado en el registro de eventos utilizando el origen de eventos registrado que se haya especificado.
Método públicoWriteEntry(String, EventLogEntryType, Int32)Escribe una entrada con el identificador de eventos definido por la aplicación y el texto de mensaje dado en el registro de eventos.
Método públicoMiembro estáticoWriteEntry(String, String, EventLogEntryType)Escribe en el registro de eventos una entrada de error, advertencia, información, auditoría correcta o auditoría incorrecta con el texto de mensaje dado mediante el origen de eventos registrado especificado.
Método públicoWriteEntry(String, EventLogEntryType, Int32, Int16)Escribe en el registro de eventos una entrada con el texto de mensaje dado, el identificador de eventos definido por la aplicación y la categoría definida por la aplicación.
Método públicoMiembro estáticoWriteEntry(String, String, EventLogEntryType, Int32)Escribe en el registro de eventos una entrada con el texto de mensaje dado y el identificador de eventos definido por la aplicación mediante el origen de eventos registrado.
Método públicoWriteEntry(String, EventLogEntryType, Int32, Int16, Byte[])Escribe en el registro de eventos una entrada con el texto de mensaje dado, el identificador de eventos definido por la aplicación y la categoría definida por la aplicación y anexa datos binarios al mensaje.
Método públicoMiembro estáticoWriteEntry(String, String, EventLogEntryType, Int32, Int16)Escribe en el registro de eventos una entrada con el texto de mensaje dado, el identificador de eventos definido por la aplicación y la categoría definida por la aplicación mediante el origen de eventos registrado específico. El Visor de eventos puede usar el parámetro category para filtrar los eventos del registro.
Método públicoMiembro estáticoWriteEntry(String, String, EventLogEntryType, Int32, Int16, Byte[])Escribe en el registro de eventos una entrada con el texto de mensaje dado, el identificador de eventos definido por la aplicación y la categoría definida por la aplicación (mediante el origen de eventos registrado especificado) y anexa datos binarios al mensaje.
Método públicoWriteEvent(EventInstance, Object[])Escribe una entrada adaptada en el registro de eventos.
Método públicoWriteEvent(EventInstance, Byte[], Object[])Escribe una entrada de registro de eventos con los datos de evento dados, con cadenas de reemplazo de mensajes y con datos binarios asociados.
Método públicoMiembro estáticoWriteEvent(String, EventInstance, Object[])Escribe una entrada de registro de eventos con las cadenas de reemplazo de mensaje y los datos de evento proporcionados, para lo que utiliza el origen de eventos registrado.
Método públicoMiembro estáticoWriteEvent(String, EventInstance, Byte[], Object[])Escribe una entrada de registro con los datos de evento dados, con cadenas de reemplazo de mensajes y con datos binarios asociados y, además, utiliza el origen de eventos registrado.
Arriba

  NombreDescripción
Evento públicoDisposedSe produce cuando el componente se elimina mediante una llamada al método Dispose. (Se hereda de Component).
Evento públicoEntryWrittenSe produce cuando se escribe una entrada en un registro de eventos en el equipo local.
Arriba

EventLog permite obtener acceso a registros de eventos de Windows o personalizarlos; estos registros graban información sobre eventos de software o hardware importantes. Mediante EventLog, se puede leer a partir de registros existentes, escribir entradas en registros, crear o eliminar orígenes de eventos, eliminar registros y responder a entradas de registros. También se pueden crear nuevos registros al crear un origen de eventos.

Nota importanteImportante

Este tipo implementa la interfaz IDisposable. Cuando haya terminado de utilizar el tipo, se debe eliminar de directa o indirectamente. Para desechar de tipo directamente, llame al método de Dispose en un bloque de try/decatch . Para desechar de indirectamente, utilice una construcción de lenguaje como using (en C#) o Using (en Visual Basic). Para obtener más información, vea “Uso de objeto que implementa sección IDisposable” en el tema de la interfaz de IDisposable .

Además de proporcionar acceso a los registros de eventos individuales y sus entradas, la clase de EventLog le permite tener acceso a la colección de todos los registros de eventos. Los miembros static de EventLog pueden utilizarse para eliminar registros, obtener listas de registros, crear o eliminar un origen o determinar si un equipo ya contiene un origen determinado.

Hay tres registros de eventos predeterminados: Application, System y Security. Un registro de seguridad es de solo lectura. Otras aplicaciones y servicios que se instalen, como Active Directory, podrían tener registros de eventos adicionales.

Existen consideraciones de seguridad al utilizar la clase de EventLog . EventLog requiere los permisos de EventLogPermission de acciones específicas en .NET Framework 2.0 y versiones posteriores, o plena confianza en .NET Framework 1,0 y 1,1. Se recomienda EventLogPermission para no conceder al código de confianza parcial. Nunca debería pasar cualquier objeto del registro de eventos, incluidos EventLogEntryCollection y los objetos de EventLogEntry , código menos confianza. Por ejemplo, crear un objeto de EventLog , escribir una entrada, y luego pasar el objeto de EventLog a código de confianza parcial pueden crear un problema de seguridad, porque la función para leer y escribir en el registro de eventos permite que el código realice acciones como emitir mensajes de registro de eventos en nombre de otra aplicación.

A partir de Windows Vista, Control de cuentas de usuario (UAC) determina las credenciales de un usuario. Si es miembro del grupo Administradores integrados, se le asignarán dos símbolos (tokens) de acceso en tiempo de ejecución: un símbolo (token) de acceso de usuario estándar y un símbolo (token) de acceso de administrador. De forma predeterminada, se le asignará el rol de usuario estándar. Para ejecutar el código que tiene acceso al registro de seguridad, primero debe elevar las credenciales de usuario estándar el administrador. Puede hacer esto cuando inicia una aplicación abriendo el menú contextual para el icono de la aplicación (si utiliza un mouse, haga clic con el botón secundario) e indicando que desea ejecutar como administrador.

Se puede usar EventLog para crear registros de eventos personalizados visibles desde el Visor de eventos del servidor. El método RegisterDisplayName se utiliza para mostrar en el Visor de eventos un nombre adaptado para el registro de eventos. El método ModifyOverflowPolicy, por su parte, se utiliza para configurar el comportamiento del registro de eventos cuando llegue a su tamaño máximo.

Para leer un registro de eventos, especifique el nombre del registro (propiedad deLog ) y el nombre del equipo servidor (propiedad deMachineName para el registro de eventos. Si no especifica el nombre del equipo servidor, el equipo local, “. ”, se supone. No es necesario especificar el origen de eventos (propiedad deSource ), porque un origen sólo se necesita para escribir los registros. La propiedad de Entries se rellena automáticamente con la lista del registro de eventos de entrada.

Para escribir en un registro de eventos, especifique o cree un origen de eventos (propiedad deSource ). Debe tener credenciales administrativas en el equipo para crear un origen de eventos. El origen de eventos registra la aplicación con el registro de eventos como origen válido de entradas. Puede utilizar el origen de eventos para escribir en uno solo registrar al mismo tiempo. La propiedad de Source puede ser cualquier cadena aleatoria, pero el nombre debe ser distinto de otros orígenes en el equipo. El origen de eventos es normalmente el nombre de la aplicación o de otra cadena de identificación. Si se intenta crear un valor de Source de duplicado produce una excepción. Sin embargo, se puede asociar un solo registro de eventos a varios orígenes.

Si no existe el origen de eventos para el registro de eventos asociados a la instancia de EventLog , se crea un origen de eventos. Para crear un origen de eventos en Windows Vista y posteriores o Windows Server 2003, debe tener credenciales administrativas.

Este requisito es porque todos los registros de eventos, como registros de seguridad, se deben buscar para determinar si el origen de eventos es único. A partir de Windows Vista, los usuarios no tienen permiso de acceso al registro de seguridad; por consiguiente, se produce SecurityException .

Nota importanteImportante

La creación o eliminación de un origen de eventos requiere la sincronización del código subyacente utilizando una exclusión mutua con nombre. Si los bloqueos de aplicación muy privilegiados el mutex denominado, intenta crear o eliminar un origen de eventos producen la aplicación deje de responder hasta que se libere el bloqueo. Para evitar este problema, nunca conceda permiso de UnmanagedCode a código que no es de confianza. Además, el permiso UnmanagedCode permite potencialmente omitir otros permisos y sólo se debería conceder a código de gran confianza.

Las aplicaciones y los servicios deben escribir en el registro de aplicaciones o un registro personalizado. Los controladores de dispositivos deben escribir en el Registro del sistema. Si no se establece la propiedad Log explícitamente, el registro de eventos tomará como predeterminado el registro de aplicaciones.

NotaNota

No existe nada para proteger a una aplicación de escribir como cualquier origen registrado. Si a una aplicación se le otorga el permiso Write, puede escribir eventos para cualquier origen válido que esté registrado en el equipo.

Utilice los métodos WriteEvent y WriteEntry para escribir eventos en un registro de eventos. Para escribir eventos, es necesario especificar un origen de eventos; asimismo, antes de escribir la primera entrada con el origen, es necesario crearlo y configurarlo.

El nuevo origen de eventos deberá crearse durante la instalación de la aplicación. Esto permite al sistema operativo actualizar con tiempo la lista de orígenes de eventos registrados y su configuración. Si el sistema operativo no ha actualizado la lista de orígenes de eventos, y se intenta escribir un evento con el nuevo origen, la operación de escritura no. Puede configurar un nuevo origen utilizando un objeto de EventLogInstaller o el método de CreateEventSource . Debe tener credenciales administrativas en el equipo para crear un origen de eventos.

Aunque cada origen sólo puede escribir en un registro de eventos a la vez, la aplicación puede utilizar varios orígenes para escribir en diversos registros. Por ejemplo, una aplicación podría requerir la configuración de varios orígenes para registros de eventos o archivos de recursos diferentes. Para cambiar los detalles de configuración de un origen ya existente, será necesario eliminarlo primero para volver a crearlo con la nueva configuración. Si otras aplicaciones o componentes utilizan el origen existente, cree un nuevo origen con la configuración actualizada en lugar de eliminar el origen existente.

El origen de eventos puede registrarse con recursos adaptados para la categoría de eventos y las cadenas de mensaje. La aplicación puede escribir entradas del registro de eventos utilizando identificadores de recursos en lugar de especificar los valores de cadena reales. Consulte las clases de EventLogInstaller y de EventSourceCreationData para obtener más información acerca de la configuración del origen con archivos de recursos.

Si la aplicación escribe valores de cadena directamente en el registro de eventos, no tiene que establecer las propiedades de archivo de recursos para el origen. El origen deberá configurarse para escribir o bien entradas adaptadas o bien cadenas directas. Cuando una aplicación escriba entradas usando tanto identificadores de recursos como valores de cadena, deberán registrarse dos orígenes diferentes. Por ejemplo, puede configurarse un origen con archivos de recursos y usarlo en el método WriteEvent para escribir entradas en el registro de eventos mediante identificadores de recursos. A continuación, puede crearse otro origen sin archivos de recursos y usarlo en el método WriteEntry para escribir cadenas directamente en el registro de eventos.

Al escribir eventos, deberá especificarse como mínimo una cadena de mensaje o el identificador de recursos de una cadena de mensaje. Las demás propiedades de eventos son opcionales. Los ejemplos de valores opcionales de evento incluyen lo siguiente:

  • Puede establecer EventLogEntryType para especificar el icono que el visor de eventos muestra para la entrada.

  • Puede especificar un identificador de categoría para el evento, si la aplicación utiliza las categorías para filtrar los eventos.

  • Puede adjuntar datos binarios a la entrada de evento si desea asociar información adicional a un evento determinado.

Nota importanteImportante

El registro de eventos consume espacio en disco, tiempo de procesador y otros recursos del sistema. Es importante registrar solamente información esencial. Se recomienda colocar llamadas del registro de eventos de una ruta de error, en lugar de en la ruta de acceso de código principal, por lo que no afectan negativamente al rendimiento.

Para obtener una lista con los valores de propiedad iniciales de una instancia de EventLog, vea el constructor EventLog.

Nota de la plataforma : Los registros de eventos no son compatibles en Windows 98 y Windows Millennium (Me).

El ejemplo siguiente crea el origen de eventos MySource si no existe, y escribe una entrada en el registro de eventos MyNewLog.

NotaNota

A partir de Windows Vista, debe ejecutar esta aplicación como un administrador.


using System;
using System.Diagnostics;
using System.Threading;

class MySample{

    public static void Main(){

        // Create the source, if it does not already exist.
        if(!EventLog.SourceExists("MySource"))
        {
             //An event log source should not be created and immediately used.
             //There is a latency time to enable the source, it should be created
             //prior to executing the application that uses the source.
             //Execute this sample a second time to use the new source.
            EventLog.CreateEventSource("MySource", "MyNewLog");
            Console.WriteLine("CreatedEventSource");
            Console.WriteLine("Exiting, execute the application a second time to use the source.");
            // The source is created.  Exit the application to allow it to be registered.
            return;
        }

        // Create an EventLog instance and assign its source.
        EventLog myLog = new EventLog();
        myLog.Source = "MySource";

        // Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.");

    }
}
   


.NET Framework

Compatible con: 4.5.2, 4.5.1, 4.5, 4, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows Phone 8.1, Windows Phone 8, Windows 8.1, Windows Server 2012 R2, Windows 8, Windows Server 2012, Windows 7, Windows Vista SP2, Windows Server 2008 (no se admite el rol Server Core), Windows Server 2008 R2 (se admite el rol Server Core con SP1 o versiones posteriores; no se admite Itanium)

.NET Framework no admite todas las versiones de todas las plataformas. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

Todos los miembros static (Shared en Visual Basic) públicos de este tipo son seguros para la ejecución de subprocesos. No se garantiza que los miembros de instancias sean seguros para la ejecución de subprocesos.

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft