Este artículo se tradujo automáticamente. Para ver el artículo en inglés, active la casilla Inglés. Además, puede mostrar el texto en inglés en una ventana emergente si mueve el puntero del mouse sobre el texto.
Traducción
Inglés

Clase EventLog

 

Publicado: octubre de 2016

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

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

System.Object
  System.MarshalByRefObject
    System.ComponentModel.Component
      System.Diagnostics.EventLog

public class EventLog : Component, ISupportInitialize

NombreDescripción
System_CAPS_pubmethodEventLog()

Inicializa una nueva instancia de la clase EventLog. No asocia la instancia a ningún registro.

System_CAPS_pubmethodEventLog(String)

Inicializa una nueva instancia de la clase EventLog. Asocia la instancia a un registro del equipo local.

System_CAPS_pubmethodEventLog(String, String)

Inicializa una nueva instancia de la clase EventLog. Asocia la instancia a un registro en el equipo especificado.

System_CAPS_pubmethodEventLog(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.

NombreDescripción
System_CAPS_protpropertyCanRaiseEvents

Obtiene un valor que indica si el componente puede provocar un evento.(Heredado de Component).

System_CAPS_pubpropertyContainer

Obtiene IContainer que contiene Component.(Heredado de Component).

System_CAPS_protpropertyDesignMode

Obtiene un valor que indica si la Component está actualmente en modo de diseño.(Heredado de Component).

System_CAPS_pubpropertyEnableRaisingEvents

Obtiene o establece un valor que indica si EventLog recibe notificaciones de eventos EntryWritten.

System_CAPS_pubpropertyEntries

Obtiene el contenido del registro de eventos.

System_CAPS_protpropertyEvents

Obtiene la lista de controladores de eventos que se adjuntará a este Component.(Heredado de Component).

System_CAPS_pubpropertyLog

Obtiene o establece el nombre del registro del que se lee o en el que se escribe.

System_CAPS_pubpropertyLogDisplayName

Obtiene el nombre descriptivo del registro de eventos.

System_CAPS_pubpropertyMachineName

Obtiene o establece el nombre del equipo en el que se van a leer o en el que se van a escribir los eventos.

System_CAPS_pubpropertyMaximumKilobytes

Obtiene o establece el tamaño máximo del registro de eventos, en kilobytes.

System_CAPS_pubpropertyMinimumRetentionDays

Obtiene el número de días que se deben conservar las entradas en el registro de eventos.

System_CAPS_pubpropertyOverflowAction

Obtiene el comportamiento configurado para el almacenamiento de entradas nuevas cuando el registro de eventos haya alcanzado su tamaño máximo de archivo.

System_CAPS_pubpropertySite

Obtiene o establece la ISite de la Component.(Heredado de Component).

System_CAPS_pubpropertySource

Obtiene o establece el nombre de origen que se va a registrar y utilizar al escribir en el registro de eventos.

System_CAPS_pubpropertySynchronizingObject

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

NombreDescripción
System_CAPS_pubmethodBeginInit()

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

System_CAPS_pubmethodClear()

Quita todas las entradas del registro de eventos.

System_CAPS_pubmethodClose()

Cierra el registro de eventos y libera los identificadores de lectura y escritura.

System_CAPS_pubmethodSystem_CAPS_staticCreateEventSource(EventSourceCreationData)

Establece un origen de eventos válido para la escritura de mensajes de evento localizados, mediante las propiedades de configuración especificadas para el origen y el correspondiente registro de eventos.

System_CAPS_pubmethodSystem_CAPS_staticCreateEventSource(String, String)

Establece el nombre de origen especificado 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.

System_CAPS_pubmethodSystem_CAPS_staticCreateEventSource(String, String, String)

Obsoleto. Establece el nombre de origen especificado 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.

System_CAPS_pubmethodCreateObjRef(Type)

Crea un objeto que contiene toda la información relevante necesaria para generar a un proxy que se utiliza para comunicarse con un objeto remoto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodSystem_CAPS_staticDelete(String)

Quita un registro de eventos del equipo local.

System_CAPS_pubmethodSystem_CAPS_staticDelete(String, String)

Quita un registro de eventos del equipo especificado.

System_CAPS_pubmethodSystem_CAPS_staticDeleteEventSource(String)

Quita del registro de eventos del equipo local el registro del origen de eventos.

System_CAPS_pubmethodSystem_CAPS_staticDeleteEventSource(String, String)

Quita del equipo especificado el registro del origen de eventos de la aplicación.

System_CAPS_pubmethodDispose()

Libera todos los recursos que usa Component.(Heredado de Component).

System_CAPS_protmethodDispose(Boolean)

Libera los recursos no administrados utilizados por el objeto EventLog y, de forma opcional, libera los recursos administrados.(Invalida Component.Dispose(Boolean)).

System_CAPS_pubmethodEndInit()

Termina la inicialización de EventLog utilizada en un formulario o empleada por otro componente. La inicialización se produce en tiempo de ejecución.

System_CAPS_pubmethodEquals(Object)

Determina si el objeto especificado es igual al objeto actual.(Heredado de Object).

System_CAPS_pubmethodSystem_CAPS_staticExists(String)

Determina si el registro existe en el equipo local.

System_CAPS_pubmethodSystem_CAPS_staticExists(String, String)

Determina si el registro existe en el equipo especificado.

System_CAPS_protmethodFinalize()

Libera recursos no administrados y realiza otras operaciones de limpieza antes de que se reclame el elemento Component durante la recolección de elementos no usados.(Heredado de Component).

System_CAPS_pubmethodSystem_CAPS_staticGetEventLogs()

Busca todos los registros de eventos en el equipo local y crea una matriz de objetos EventLog que contiene la lista.

System_CAPS_pubmethodSystem_CAPS_staticGetEventLogs(String)

Busca todos los registros de eventos en el equipo dado y crea una matriz de objetos EventLog que contiene la lista.

System_CAPS_pubmethodGetHashCode()

Sirve como la función hash predeterminada.(Heredado de Object).

System_CAPS_pubmethodGetLifetimeService()

Recupera el objeto de servicio de duración actual que controla la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_protmethodGetService(Type)

Devuelve un objeto que representa el servicio suministrado por Component o por Container.(Heredado de Component).

System_CAPS_pubmethodGetType()

Obtiene el Type de la instancia actual.(Heredado de Object).

System_CAPS_pubmethodInitializeLifetimeService()

Obtiene un objeto de servicio de duración para controlar la directiva de duración de esta instancia.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodSystem_CAPS_staticLogNameFromSourceName(String, String)

Obtiene el nombre del registro en el que se registra el origen especificado.

System_CAPS_protmethodMemberwiseClone()

Crea una copia superficial del Object actual.(Heredado de Object).

System_CAPS_protmethodMemberwiseClone(Boolean)

Crea una copia superficial del elemento actual MarshalByRefObject objeto.(Heredado de MarshalByRefObject).

System_CAPS_pubmethodModifyOverflowPolicy(OverflowAction, Int32)

Cambia el comportamiento configurado para la escritura de entradas nuevas cuando el registro de eventos alcanza su tamaño máximo de archivo.

System_CAPS_pubmethodRegisterDisplayName(String, Int64)

Especifica el nombre localizado del registro de eventos, que aparece en el Visor de eventos del servidor.

System_CAPS_pubmethodSystem_CAPS_staticSourceExists(String)

Determina si un origen de eventos está registrado en el equipo local.

System_CAPS_pubmethodSystem_CAPS_staticSourceExists(String, String)

Determina si un origen de eventos está registrado en un equipo especificado.

System_CAPS_pubmethodToString()

Devuelve un String que contiene el nombre de la Component, si existe. Este método no se debe invalidar.(Heredado de Component).

System_CAPS_pubmethodWriteEntry(String)

Escribe una entrada de tipo de información, con un texto de mensaje determinado, en el registro de eventos.

System_CAPS_pubmethodWriteEntry(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.

System_CAPS_pubmethodWriteEntry(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.

System_CAPS_pubmethodWriteEntry(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.

System_CAPS_pubmethodWriteEntry(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.

System_CAPS_pubmethodSystem_CAPS_staticWriteEntry(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.

System_CAPS_pubmethodSystem_CAPS_staticWriteEntry(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.

System_CAPS_pubmethodSystem_CAPS_staticWriteEntry(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 que se especifique.

System_CAPS_pubmethodSystem_CAPS_staticWriteEntry(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.

System_CAPS_pubmethodSystem_CAPS_staticWriteEntry(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.

System_CAPS_pubmethodWriteEvent(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.

System_CAPS_pubmethodWriteEvent(EventInstance, Object[])

Escribe una entrada localizada en el registro de eventos.

System_CAPS_pubmethodSystem_CAPS_staticWriteEvent(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 que se especifica.

System_CAPS_pubmethodSystem_CAPS_staticWriteEvent(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.

NombreDescripción
System_CAPS_pubeventDisposed

Se produce cuando el componente se elimina mediante una llamada a la Dispose (método).(Heredado de Component).

System_CAPS_pubeventEntryWritten

Se produce cuando se escribe una entrada en un registro de eventos en el equipo local.

EventLog lets you access or customize Windows event logs, which record information about important software or hardware events. Using EventLog, you can read from existing logs, write entries to logs, create or delete event sources, delete logs, and respond to log entries. You can also create new logs when creating an event source.

System_CAPS_importantImportante

This type implements the T:System.IDisposable interface. When you have finished using the type, you should dispose of it either directly or indirectly. To dispose of the type directly, call its M:System.IDisposable.Dispose method in a try/catch block. To dispose of it indirectly, use a language construct such as using (in C#) or Using (in Visual Basic). For more information, see the “Using an Object that Implements IDisposable” section in the T:System.IDisposable interface topic.

In addition to providing access to individual event logs and their entries, the T:System.Diagnostics.EventLog class lets you access the collection of all event logs. You can use the static members of T:System.Diagnostics.EventLog to delete logs, get log lists, create or delete a source, or determine if a computer already contains a particular source.

There are three default event logs: Application, System, and Security. A Security log is read-only. Other applications and services you install, such as Active Directory, might have additional event logs.

There are security considerations when using the T:System.Diagnostics.EventLog class. T:System.Diagnostics.EventLog requires T:System.Diagnostics.EventLogPermission permissions for specific actions in the .NET Framework 2.0 and later versions, or full trust in the .NET Framework 1.0 and 1.1. We recommend that T:System.Diagnostics.EventLogPermission not be granted to partially trusted code. You should never pass any event log object, including T:System.Diagnostics.EventLogEntryCollection and T:System.Diagnostics.EventLogEntry objects, to less trusted code. For example, creating an T:System.Diagnostics.EventLog object, writing an entry, and then passing the T:System.Diagnostics.EventLog object to partially trusted code can create a security issue, because the ability to read and write to the event log allows code to perform actions such as issuing event log messages in the name of another application.

Starting with Windows Vista, User Account Control (UAC) determines the credentials of a user. If you are a member of the Built-in Administrators group, you are assigned two run-time access tokens: a standard user access token and an administrator access token. By default, you are in the standard user role. To run the code that accesses the Security log, you must first elevate your credentials from standard user to administrator. You can do this when you start an application by opening the shortcut menu for the application (if you're using a mouse, right-click the application icon) and indicating that you want to run as an administrator.

You can use T:System.Diagnostics.EventLog to create custom event logs that you can view through the server's Event Viewer. Use the M:System.Diagnostics.EventLog.RegisterDisplayName(System.String,System.Int64) method to display a localized name for your event log in the Event Viewer. Use the M:System.Diagnostics.EventLog.ModifyOverflowPolicy(System.Diagnostics.OverflowAction,System.Int32) method to configure the behavior of your event log when it reaches its maximum log size.

To read from an event log, specify the log name (P:System.Diagnostics.EventLog.Log property) and server computer name (P:System.Diagnostics.EventLog.MachineName property for the event log. If you don't specify the server computer name, the local computer, ".", is assumed. It's not necessary to specify the event source (P:System.Diagnostics.EventLog.Source property), because a source is required only for writing to logs. The P:System.Diagnostics.EventLog.Entries property is automatically populated with the event log's list of entries.

To write to an event log, specify or create an event source (P:System.Diagnostics.EventLog.Source property). You must have administrative credentials on the computer to create a new event source. The event source registers your application with the event log as a valid source of entries. You can use the event source to write to only one log at a time. The P:System.Diagnostics.EventLog.Source property can be any random string, but the name must be distinct from other sources on the computer. The event source is typically the name of the application or another identifying string. Trying to create a duplicate P:System.Diagnostics.EventLog.Source value throws an exception. However, a single event log can be associated with multiple sources.

If the event source for the event log associated with the T:System.Diagnostics.EventLog instance doesn't exist, a new event source is created. To create an event source in Windows Vista and later or Windows Server 2003, you must have administrative credentials.

This requirement is because all event logs, including Security logs, must be searched to determine whether the event source is unique. Starting with Windows Vista, users do not have permission to access the Security log; therefore, a T:System.Security.SecurityException is thrown.

System_CAPS_importantImportante

Creating or deleting an event source requires synchronization of the underlying code by using a named mutex. If a highly privileged application locks the named mutex, trying to create or delete an event source causes the application to stop responding until the lock is released. To help prevent this problem, never grant F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode permission to untrusted code. In addition, F:System.Security.Permissions.SecurityPermissionFlag.UnmanagedCode permission potentially allows other permissions to be bypassed and should only be granted to highly trusted code.

Applications and services should write to the Application log or to a custom log. Device drivers should write to the System log. If you do not explicitly set the P:System.Diagnostics.EventLog.Log property, the event log defaults to the Application log.

System_CAPS_noteNota

There is nothing to protect an application from writing as any registered source. If an application is granted F:System.Diagnostics.EventLogPermissionAccess.Write permission, it can write events for any valid source registered on the computer.

Use the Overload:System.Diagnostics.EventLog.WriteEvent and Overload:System.Diagnostics.EventLog.WriteEntry methods to write events to an event log. You must specify an event source to write events; you must create and configure the event source before writing the first entry with the source.

Create the new event source during the installation of your application. This allows time for the operating system to refresh its list of registered event sources and their configuration. If the operating system hasn't refreshed its list of event sources, and you try to write an event with the new source, the write operation will fail. You can configure a new source by using an T:System.Diagnostics.EventLogInstaller object or the Overload:System.Diagnostics.EventLog.CreateEventSource method. You must have administrative credentials on the computer to create a new event source.

Each source can write to only one event log at a time; however, your application can use multiple sources to write to multiple event logs. For example, your application might require multiple sources configured for different event logs or different resource files. To change the configuration details of an existing source, you must delete the source and then create it with the new configuration. If other applications or components use the existing source, create a new source with the updated configuration instead of deleting the existing source.

You can register the event source with localized resources for your event category and message strings. Your application can write event log entries by using resource identifiers instead of specifying the actual string values. Refer to the T:System.Diagnostics.EventLogInstaller and T:System.Diagnostics.EventSourceCreationData classes for more information about configuring your source with resource files.

If your application writes string values directly to the event log, you do not have to set the resource file properties for the source. The source must be configured either for writing localized entries or for writing direct strings. If your application writes entries using both resource identifiers and string values, you must register two separate sources. For example, configure one source with resource files, and then use that source in the Overload:System.Diagnostics.EventLog.WriteEvent method to write entries using resource identifiers to the event log. Then create a different source without resource files, and use that source in the Overload:System.Diagnostics.EventLog.WriteEntry method to write strings directly to the event log using that source.

When writing events, you must at least specify either a message string or the resource identifier for a message string. Other event properties are optional. Examples of optional event settings include the following:

  • You can set the T:System.Diagnostics.EventLogEntryType to specify the icon that the Event Viewer displays for the entry.

  • You can specify a category identifier for the event, if your application uses categories for filtering the events.

  • You can attach binary data to your event entry if you want to associate additional information with a given event.

System_CAPS_importantImportante

Event logging consumes disk space, processor time, and other system resources. It is important to log only essential information. We recommend that you place event log calls in an error path, rather than in the main code path, so they don't adversely affect performance.

For a list of initial property values for an instance of T:System.Diagnostics.EventLog, see the M:System.Diagnostics.EventLog.#ctor constructor.

Win98WinMe

Event logs are not supported on Windows 98 or Windows Millennium Edition (Me).

The following example creates the event source MySource if it doesn't already exist, and writes an entry to the event log MyNewLog.

System_CAPS_noteNota

Starting with Windows Vista, you must run this application as an administrator.

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
Disponible desde 1.1

Cualquier miembro ( Compartido en Visual Basic) estático público de este tipo es seguro para subprocesos. No se garantiza que los miembros de instancia sean seguros para subprocesos.

Volver al principio
Mostrar: