Esta documentación está archivada y no tiene mantenimiento.

EventLog.CreateEventSource (Método) (String, String, String)

Actualización: noviembre 2007

NOTA: esta API ya está obsoleta.

Establece una aplicación mediante la propiedad Source especificada, como un origen de eventos válido para escribir entradas en un registro en el equipo especificado por machineName. Este método puede utilizarse también para crear un nuevo registro personalizado en el equipo especificado.

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

[ObsoleteAttribute("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  http://go.microsoft.com/fwlink/?linkid=14202")]
public static void CreateEventSource(
	string source,
	string logName,
	string machineName
)
/** @attribute ObsoleteAttribute("This method has been deprecated.  Please use System.Diagnostics.EventLog.CreateEventSource(EventSourceCreationData sourceData) instead.  http://go.microsoft.com/fwlink/?linkid=14202") */
public static void CreateEventSource(
	String source,
	String logName,
	String machineName
)
public static function CreateEventSource(
	source : String, 
	logName : String, 
	machineName : String
)

Parámetros

source
Tipo: System.String
Origen mediante el que se registra la aplicación en el equipo especificado.
logName
Tipo: System.String
Nombre del registro en el que se escriben las entradas del origen. Posibles valores: Aplicación, Sistema o un registro de eventos personalizado. Si no se especifica un valor, logName toma Aplicación como valor predeterminado.
machineName
Tipo: System.String
Nombre del equipo con el que se va a registrar este origen de eventos o "." para el equipo local.

ExcepciónCondición
ArgumentException

machineName no es un nombre de equipo válido.

O bien

source es una cadena vacía ("") o null.

O bien

logName no es un nombre de registro de eventos válido. Los nombres de los registros de eventos han de estar compuestos por caracteres imprimibles, excluidos '*', '?', o '\'.

O bien

El nombre del registro especificado en sourceData no es válido para la creación de registros de usuario. Los nombres de registro de eventos AppEvent, SysEvent y SecEvent están reservados para uso del sistema.

O bien

El nombre del registro coincide con el nombre de un origen de eventos ya existente.

O bien

El nombre de origen produce una ruta de clave del Registro con una longitud superior a 254 caracteres.

O bien

Los 8 primeros caracteres de logName coinciden con los 8 primeros caracteres del nombre de un registro de eventos ya existente en el equipo especificado.

O bien

No puede registrarse el origen porque ya existe en el equipo especificado.

O bien

El nombre del origen coincide con el nombre de un origen de eventos ya existente.

InvalidOperationException

No se ha podido abrir en el equipo especificado la clave del Registro para el registro de eventos.

Utilice esta sobrecarga para crear un registro personalizado o para crear y registrar la propiedad Source en un registro existente en el equipo especificado.

Si logname es null o una cadena vacía ("") al llamar al método CreateEventSource, el registro toma como valor predeterminado el registro de aplicaciones. Si el registro no existe en el equipo especificado, el sistema crea un registro personalizado y registra la aplicación como el origen (Source) para ese registro.

Solamente es necesario crear un origen de eventos si se está escribiendo en el registro de eventos. Antes de escribir una entrada en un registro de eventos, se debe registrar el origen de eventos con el registro de eventos como origen de eventos válido. Cuando se escribe una entrada del Registro, el sistema utiliza Source para buscar el registro adecuado donde agregarla. Si se está leyendo el registro de eventos, se pueden especificar las propiedades Source o Log y MachineName.

x7y6sy21.alert_note(es-es,VS.90).gifNota:

Para poder crear un origen de eventos en Windows Vista, Windows XP Professional 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. En Windows Vista, los usuarios no tienen permiso de acceso al registro de seguridad; por tanto, se produce una excepción SecurityException.

En 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á la función 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. Esto se puede hacer cuando se inicia una aplicación haciendo clic con el botón secundario del mouse en el icono de la aplicación e indicando que se desea ejecutar como administrador.

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. 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 de 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 del Registro, pero éste no se crea hasta que no se escribe la primera entrada en él.

El sistema operativo guarda los registros de eventos como archivos. Cuando se utiliza EventLogInstaller o CreateEventSource para crear un registro de eventos nuevo, el archivo asociado se guarda en el directorio %SystemRoot%\System32\Config del equipo especificado. El nombre de archivo se establece anexando los 8 primeros caracteres de la propiedad Log con la extensión de nombre de archivo ".evt".

El origen ha de ser único en el equipo local (un nombre de origen nuevo no puede coincidir con otro anterior o con el de un registro de eventos ya existente). 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 diferentes registros de eventos o archivos de recursos.

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.

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.

x7y6sy21.alert_note(es-es,VS.90).gifNota:

Cuando un origen asignado a un registro vuelve a asignarse a otro registro, es necesario reiniciar el equipo para que los cambios surtan efecto.

En el siguiente ejemplo se crea el origen MySource en el equipo MyServer y se escribe una entrada en el registro de eventos MyNewLog.

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", "MyServer"))
        {
            // 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", "MyServer");
            Console.WriteLine("CreatingEventSource");
            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.");

        Console.WriteLine("Message written to event log.");                                                                        
    }
}



import System.*;
import System.Diagnostics.*;
import System.Threading.*;

class MySample
{
    public static void main(String[] args)
    {
        // Create the source, if it does not already exist.
        if (!(EventLog.SourceExists("MySource", "MyServer"))) {
            EventLog.CreateEventSource("MySource", "MyNewLog", "MyServer");
            Console.WriteLine("CreatingEventSource");
        }

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

        // Write an informational entry to the event log.    
        myLog.WriteEntry("Writing to event log.");
        Console.WriteLine("Message written to event log.");
    } //main
} //MySample


Windows Vista, Windows XP SP2, Windows XP Media Center Edition, Windows XP Professional x64 Edition, Windows XP Starter Edition, Windows Server 2003, Windows Server 2000 SP4, Windows Millennium Edition, Windows 98

.NET Framework y .NET Compact Framework no admiten todas las versiones de cada plataforma. Para obtener una lista de las versiones compatibles, vea Requisitos de sistema de .NET Framework.

.NET Framework

Compatible con: 1.1, 1.0
Obsoleto (advertencia del compilador) en 3.5
Obsoleto (advertencia del compilador) en 3.5 SP1
Obsoleto (advertencia del compilador) en 3.0
Obsoleto (advertencia del compilador) en 3.0 SP1
Obsoleto (advertencia del compilador) en 2.0
Obsoleto (advertencia del compilador) en 2.0 SP1
Mostrar: