Exportar (0) Imprimir
Expandir todo
Este artículo se tradujo de forma manual. Mueva el puntero sobre las frases del artículo para ver el texto original.
Traducción
Original
Este tema aún no ha recibido ninguna valoración - Valorar este tema

EventLog (Clase)

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

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 instancia nueva 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) Obsoleto. 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 el objeto 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 Object especificado es igual al objeto Object 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úblicoGetHashCodeActúa como función hash para un tipo concreto. (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.

NotaNota

Si el Source del registro de eventos asociado a la instancia EventLog no existe, se crea un nuevo origen de eventos. Para poder crear un origen de eventos en Windows Vista y versiones posteriores o Windows Server 2003, debe tener privilegios de administrador.

La razón de este requisito es que deben buscarse todos los registros de eventos, incluidos los de seguridad, para determinar si el origen del evento es único. A partir de Windows Vista, los usuarios no tienen permiso de acceso al registro de seguridad; por tanto, se produce una excepción SecurityException.

A partir de Windows Vista, el Control de cuentas de usuario (UAC) determina los privilegios 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 el nivel de sus privilegios de usuario estándar a administrador. Podrá hacerlo cuando inicie una aplicación haciendo clic con el botón secundario en el icono de la aplicación e indicando que desea ejecutarla como administrador.

Nota importanteImportante

Crear un objeto EventLog, escribir una entrada y pasar el objeto a código de confianza parcial puede originar un problema de seguridad. Los objetos del registro de eventos, como EventLogEntry y EventLogEntryCollection, no deben pasarse nunca a código que no sea de plena confianza.

Nota importanteImportante

   En las versiones 1.0 y 1.1 de .NET Framework, esta clase necesita llamadores inmediatos que sean de plena confianza. En la versión 2.0 esta clase necesita EventLogPermission para acciones específicas. Es muy recomendable que no se conceda EventLogPermission al código de confianza parcial. La capacidad de leer y escribir en el registro de eventos permite que el código lleve a cabo acciones como la emisión de mensajes del registro de eventos en nombre de otra aplicación.

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 una aplicación que cuenta con muchos privilegios bloquea la exclusión mutua con nombre, los intentos de crear o eliminar un origen de eventos harán que la aplicación deje de responder hasta que desaparezca el bloqueo. Para evitar este problema, no conceda nunca el permiso UnmanagedCode a código que no sea 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.

Para leer desde un registro, especifique el nombre de Log y MachineName (nombre del equipo del servidor) para EventLog. No es necesario especificar Source, ya que sólo es necesario un origen para escribir en registros. El miembro Entries se llena de forma automática con la lista de entradas del registro de eventos.

NotaNota

No es necesario especificar MachineName si está conectándose a un registro mediante la especificación de un par Log / MachineName. Si no especifica el valor MachineName, se supone que se trata del equipo local (".").

Si se escribe en un registro de eventos, se debe especificar o crear un evento Source. Es necesario contar con derechos administrativos en el equipo para crear un nuevo origen de eventos. Source registra la aplicación con el registro de eventos como un origen de entradas válido. Solamente se puede utilizar la propiedad Source para escribir en un único registro cada vez. Source puede ser cualquier cadena aleatoria, pero el nombre debe ser diferente de otros orígenes del equipo. Es habitual que el origen sea el nombre de la aplicación u otra cadena de identificación. Un intento de crear un valor de Source duplicado produce una excepción. Sin embargo, se puede asociar un solo registro de eventos a varios orígenes.

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.

Las aplicaciones y los servicios deben escribir en el registro de la aplicación o en 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

El registro de seguridad es de sólo lectura.

Para escribir eventos en un registro de eventos, deberán utilizarse WriteEvent y WriteEntry. 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 aún no ha actualizado la lista de orígenes de eventos y se intenta escribir un evento con el nuevo origen, se producirá un error en la operación de escritura. Para configurar un nuevo origen, puede utilizarse EventLogInstaller o el método CreateEventSource. Es necesario contar con derechos administrativos en el equipo para crear un nuevo 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 lo estuvieran utilizando, en lugar de eliminarlo, deberá crearse uno nuevo con la configuración actualizada.

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 en el registro de eventos utilizando los identificadores de recursos, en lugar de especificar los valores de cadena reales. Vea las clases EventLogInstaller y EventSourceCreationData para obtener más información sobre cómo configurar su origen con archivos de recursos.

Cuando una aplicación escribe valores de cadena directamente en el registro de eventos, no es necesario establecer las propiedades del 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. Pongamos algunos ejemplos de la configuración opcional de eventos: se puede establecer EventLogEntryType para especificar el icono que muestra el visor de eventos para la entrada; es posible especificar un identificador de categoría para el evento, en caso de que la aplicación utilice categorías para filtrar los eventos; y también se pueden agregar datos binarios a la entrada de un evento, si éste debe llevar asociada información adicional.

Además de obtener acceso a registros de eventos individuales y a sus entradas, la clase EventLog proporciona 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. Otras aplicaciones y servicios instalados, como Active Directory, pueden tener registros de eventos adicionales. 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.

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 en una ruta de acceso de error, en lugar de en la ruta de acceso de código principal, para que no afecte 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).

En el siguiente ejemplo se crea el origen MySource, si es que aún no existe, y se 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, 3.5, 3.0, 2.0, 1.1, 1.0

.NET Framework Client Profile

Compatible con: 4, 3.5 SP1

Windows 7, Windows Vista SP1 o posterior, Windows XP SP3, Windows XP SP2 x64 Edition, Windows Server 2008 (no se admite Server Core), Windows Server 2008 R2 (se admite Server Core con SP1 o posterior), Windows Server 2003 SP2

.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.
¿Te ha resultado útil?
(Caracteres restantes: 1500)
Gracias por sus comentarios

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft. Reservados todos los derechos.