Exportar (0) Imprimir
Expandir todo

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)

'Declaración
Public Class EventSourceCreationData
'Uso
Dim instance As EventSourceCreationData

public class EventSourceCreationData
public class EventSourceCreationData
No aplicable.

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 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. 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, en función de la configuración de idioma actual, la correspondiente cadena del archivo de recursos adaptado. 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.

Nota de la plataforma Windows 98: 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.

Imports System
Imports System.Globalization
Imports System.Diagnostics

Namespace EventLogSamples
    Class CreateSourceSample

        Public Shared Sub Main(ByVal args() As String)
        
            Dim mySourceData As EventSourceCreationData = new EventSourceCreationData("", "")
            Dim registerSource As Boolean = 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)
    
                End If
                If args.Length > 2
   
                    mySourceData.MachineName = args(2)
    
                End If
                If args.Length > 3 AndAlso args(3).Length > 0
   
                    mySourceData.MessageResourceFile = args(3)
    
                End If

            Else 
                ' Display a syntax help message.
                Console.WriteLine("Input:")
                Console.WriteLine(" source [event log] [machine name] [resource file]")

                registerSource = False
            End If

            ' Set defaults for parameters missing input.
            If mySourceData.MachineName.Length = 0
            
                ' Default to the local computer.
                mySourceData.MachineName = "."
            End If
            If mySourceData.LogName.Length = 0
                ' Default to the Application log.
                mySourceData.LogName = "Application"
            End If

            ' Determine if the source exists on the specified computer.
            If Not 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 <> Nothing AndAlso _
                   mySourceData.MessageResourceFile.Length > 0
                   
                    If mySourceData.MachineName = "."
                        If Not System.IO.File.Exists(mySourceData.MessageResourceFile)

                            Console.WriteLine("File {0} not found - message file not set for source.", _
                                mySourceData.MessageResourceFile)
                            registerSource = False
                        End If
                    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

                    End If
                End If
            Else 
                ' Do not register the source, it already exists.
                registerSource = False

                ' Get the event log corresponding to the existing source.
                Dim sourceLog As string
                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)

                End If
            End If

            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!")
            End If

        End Sub 'Main
    End Class 'CreateSourceSample
End Namespace 'EventLogSamples

System.Object
  System.Diagnostics.EventSourceCreationData

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.

Windows 98, Windows 2000 Service Pack 4, Windows Millennium, Windows Server 2003, Windows XP Media Center, Windows XP Professional x64, Windows XP SP2, Windows XP Starter

Microsoft .NET Framework 3.0 es compatible con Windows Vista, Microsoft Windows XP SP2 y Windows Server 2003 SP1.

.NET Framework

Compatible con: 3.0, 2.0

Adiciones de comunidad

AGREGAR
Mostrar:
© 2014 Microsoft