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

EventSourceCreationData (Clase)

 

Representa los valores de configuración utilizados para crear un origen de registro de eventos en el equipo local o un equipo remoto.

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

System.Object
  System.Diagnostics.EventSourceCreationData

public class EventSourceCreationData

NombreDescripción
System_CAPS_pubmethodEventSourceCreationData(String, String)

Inicializa una nueva instancia de la clase EventSourceCreationData con un origen de eventos y un nombre de registro de eventos especificados.

NombreDescripción
System_CAPS_pubpropertyCategoryCount

Obtiene o establece el número de categorías en el archivo de recursos de categoría.

System_CAPS_pubpropertyCategoryResourceFile

Obtiene o establece la ruta de acceso del archivo de recursos que contiene las cadenas de categoría para el origen.

System_CAPS_pubpropertyLogName

Obtiene o establece el nombre del registro de eventos en el que el origen escribe las entradas.

System_CAPS_pubpropertyMachineName

Obtiene o establece el nombre del equipo en el que se va a registrar el origen de eventos.

System_CAPS_pubpropertyMessageResourceFile

Obtiene o establece la ruta de acceso al archivo de recursos de mensaje que contiene las cadenas de formato de mensajes del origen.

System_CAPS_pubpropertyParameterResourceFile

Obtiene o establece la ruta de acceso del archivo de recursos que contiene las cadenas de parámetros de mensaje para el origen.

System_CAPS_pubpropertySource

Obtiene o establece el nombre que se va a registrar con el registro de eventos como origen de eventos.

NombreDescripción
System_CAPS_pubmethodEquals(Object)

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

System_CAPS_protmethodFinalize()

Permite que un objeto intente liberar recursos y realizar otras operaciones de limpieza antes de ser reclamado por el recolector de basura. (Heredado de Object.)

System_CAPS_pubmethodGetHashCode()

Sirve como una función hash para un tipo en particular. (Heredado de Object.)

System_CAPS_pubmethodGetType()

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

System_CAPS_protmethodMemberwiseClone()

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

System_CAPS_pubmethodToString()

Retorna una cadena que representa al objeto actual. (Heredado de Object.)

Utilice la clase EventSourceCreationData para configurar un nuevo origen a fin de escribir las entradas adaptadas en un registro de eventos.No es necesario usar esta clase para leer a partir de un registro de eventos.

Esta clase define los valores de configuración de un nuevo origen de eventos y su registro de eventos asociado.Este registro de eventos puede estar en el equipo local o un equipo remoto.Con el fin de crear un nuevo origen para un registro de eventos nuevo o existente en el equipo local, establezca las propiedades LogName y Source de EventSourceCreationData y llame al método EventLog.CreateEventSource(EventSourceCreationData).Este método crea el origen de eventos especificado en la propiedad Source y lo registra para el registro de eventos especificado en LogName.Este comportamiento es parecido a utilizar la clase EventLogInstaller para registrar un origen de eventos de un registro de eventos.

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.De esta manera, el sistema operativo dispondrá de tiempo para actualizar la lista de orígenes de eventos registrados y sus configuraciones.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.

Puede crearse un origen de eventos para un registro de eventos ya existente o para uno nuevo.Cuando se crea un origen para un registro de eventos nuevo, el sistema registra el origen de ese registro, pero éste no se crea hasta que no se escriba la primera entrada en él.

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 de eventos.Por ejemplo, una aplicación podría requerir la configuración de varios orígenes para diferentes registros de eventos o archivos de recursos.

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.Una aplicación puede escribir entradas del registro de eventos mediante identificadores de recursos en lugar de especificar la cadena real.El visor de eventos utiliza el identificador del recurso para buscar y mostrar la correspondiente cadena del archivo de recursos adaptado en función de la configuración de idioma actual.Puede registrarse un archivo independiente para las cadenas de categoría de eventos, mensajes e inserción de parámetros, o bien un mismo archivo de recursos para los tres tipos de cadenas.Las propiedades CategoryCount, CategoryResourceFile, MessageResourceFile y ParameterResourceFile se emplean para configurar un origen para la escritura de entradas adaptadas en el registro de eventos.Cuando una aplicación escribe valores de cadena directamente en el registro de eventos, no es necesario establecer estas propiedades.

El origen deberá configurarse para escribir o bien entradas adaptadas o bien cadenas directas.El método WriteEntry escribe la cadena especificada directamente en el registro de eventos, no utiliza un archivo de recursos de mensajes adaptado.Para escribir eventos mediante archivo de recursos de mensajes adaptado, deberá utilizarse el método WriteEvent.

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, se puede crear otro origen sin archivos de recursos y usarlo en el método WriteEntry para escribir cadenas directamente en el registro de eventos.

Win98

Los registros de eventos no son compatibles con Windows 98 ni Windows Millennium (Me).

En el ejemplo de código siguiente se establecen las propiedades de configuración de un origen de eventos mediante argumentos de la línea de comandos.Los argumentos de entrada especifican el nombre del origen y del registro de eventos, el nombre del equipo y el archivo de recursos de mensajes de eventos.El ejemplo de código comprueba que el origen no entra en conflicto con un origen de eventos existente y, a continuación, crea el nuevo origen de eventos para el registro de eventos especificado.

using System;
using System.Globalization;
using System.Diagnostics;

namespace EventLogSamples
{
    class CreateSourceSample
    {
        [STAThread]
        static void Main(string[] args)
        {
            EventSourceCreationData mySourceData = new EventSourceCreationData("", "");
            bool registerSource = true;

            // Process input parameters.
            if (args.Length > 0)
            {
                // Require at least the source name.

                mySourceData.Source = args[0];

                if (args.Length > 1)
                {
                    mySourceData.LogName = args[1];
                }

                if (args.Length > 2)
                {
                    mySourceData.MachineName = args[2];
                }
                if ((args.Length > 3) && (args[3].Length > 0))
                {
                    mySourceData.MessageResourceFile = args[3];
                }
            }
            else 
            {
                // Display a syntax help message.
                Console.WriteLine("Input:");
                Console.WriteLine(" source [event log] [machine name] [resource file]");

                registerSource = false;
            }

            // Set defaults for parameters missing input.
            if (mySourceData.MachineName.Length == 0)
            {
                // Default to the local computer.
                mySourceData.MachineName = ".";
            }
            if (mySourceData.LogName.Length == 0)
            {
                // Default to the Application log.
                mySourceData.LogName = "Application";
            }

            // Determine if the source exists on the specified computer.
            if (!EventLog.SourceExists(mySourceData.Source, 
                                       mySourceData.MachineName))
            {
                // The source does not exist.  

                // Verify that the message file exists
                // and the event log is local.

                if ((mySourceData.MessageResourceFile != null) &&
                    (mySourceData.MessageResourceFile.Length > 0))
                {
                    if (mySourceData.MachineName == ".") 
                    {
                        if (!System.IO.File.Exists(mySourceData.MessageResourceFile))
                        {
                            Console.WriteLine("File {0} not found - message file not set for source.",
                                mySourceData.MessageResourceFile);
                            registerSource = false;
                        }
                    }
                    else 
                    {
                        // For simplicity, do not allow setting the message
                        // file for a remote event log.  To set the message
                        // for a remote event log, and for source registration,
                        // the file path should be specified with system-wide
                        // environment variables that are valid on the remote
                        // computer, such as
                        // "%SystemRoot%\system32\myresource.dll".

                        Console.WriteLine("Message resource file ignored for remote event log.");
                        registerSource = false;
                    }
                }
            }
            else
            {
                // Do not register the source, it already exists.
                registerSource = false;

                // Get the event log corresponding to the existing source.
                string sourceLog;
                sourceLog = EventLog.LogNameFromSourceName(mySourceData.Source,
                                mySourceData.MachineName);

                // Determine if the event source is registered for the 
                // specified log.

                if (sourceLog.ToUpper(CultureInfo.InvariantCulture) != mySourceData.LogName.ToUpper(CultureInfo.InvariantCulture)) 
                {
                    // An existing source is registered 
                    // to write to a different event log.
                    Console.WriteLine("Warning: source {0} is already registered to write to event log {1}",
                        mySourceData.Source, sourceLog);
                }
                else 
                {
                    // The source is already registered 
                    // to write to the specified event log.

                    Console.WriteLine("Source {0} already registered to write to event log {1}",
                        mySourceData.Source, sourceLog);
                }
            }


            if (registerSource)
            {
                // Register the new event source for the specified event log.

                Console.WriteLine("Registering new source {0} for event log {1}.",
                    mySourceData.Source, mySourceData.LogName);
                EventLog.CreateEventSource(mySourceData);
                Console.WriteLine("Event source was registered successfully!");
            }
        }
    }
}

SecurityPermission

para llamar a los miembros de EventSourceCreationData con plena confianza.Enumeración asociada: PermissionState.Unrestricted

.NET Framework
Disponible desde 2.0

Los miembros estáticos públicos (Shared en Visual Basic) 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.

Volver al principio
Mostrar: