Tutorial: Crear agentes de escucha de registro personalizados (Visual Basic)

En este tutorial se muestra cómo crear un agente de escucha de registro personalizado y configurarlo para escuchar la salida del objeto My.Application.Log.

Introducción

Los agentes de escucha de registro deben heredar de la clase TraceListener.

Para crear el agente de escucha

  • En la aplicación, cree una clase denominada SimpleListener que herede de TraceListener.

    Public Class SimpleListener
        Inherits System.Diagnostics.TraceListener
    
        <Security.Permissions.HostProtection(Synchronization:=True)>
        Public Overloads Overrides Sub Write(ByVal message As String)
            MsgBox("Write: " & message)
        End Sub
    
        <Security.Permissions.HostProtection(Synchronization:=True)>
        Public Overloads Overrides Sub WriteLine(ByVal message As String)
            MsgBox("WriteLine: " & message)
        End Sub
    End Class
    

    Los métodos Write y WriteLine, requeridos por la clase base, llame a MsgBox para mostrar su entrada.

    El atributo HostProtectionAttribute se aplica a los métodos Write y WriteLine, para que sus atributos coincidan con los métodos de clase base. El atributo HostProtectionAttribute permite al host que ejecuta el código determinar que el código expone sincronización de protección de host.

    Nota

    El atributo HostProtectionAttribute solo es eficaz en aplicaciones no administradas que hospedan Common Language Runtime e implementan protección de host, como SQL Server.

Para asegurarse de que My.Application.Log usa su agente de escucha de registro, debe asignar un nombre seguro al ensamblado que contiene el agente de escucha de registro.

En el procedimiento siguiente se proporcionan algunos pasos sencillos para crear un ensamblado de agente de escucha de registro con nombre seguro. Para obtener más información, vea Crear y utilizar ensamblados con nombre seguro.

Para asignar un nombre seguro al ensamblado de agente de escucha de registro

  1. Seleccione un proyecto en el Explorador de soluciones. En el menú Proyecto , elija Propiedades.

  2. Haga clic en la pestaña Firma.

  3. Active la casilla Firmar el ensamblado .

  4. Seleccione <Nuevo> en la lista desplegable Elija un archivo de clave de nombre seguro.

    Se abre el cuadro de diálogo Crear clave de nombre seguro.

  5. Especifique un nombre para el archivo de clave en el cuadro Nombre del archivo de clave.

  6. Escriba una contraseña en los cuadros Escribir contraseña y Confirmar contraseña.

  7. Haga clic en Aceptar.

  8. Vuelva a compilar la aplicación.

Agregar el agente de escucha

Ahora que el ensamblado tiene un nombre seguro, debe determinar el nombre seguro del agente de escucha para que My.Application.Log use el agente de escucha de registro.

El formato de un tipo con nombre seguro es el siguiente.

<nombre de tipo>, <nombre de ensamblado>, <número de versión>, <referencia cultural>, <nombre seguro>

Para determinar el nombre seguro del agente de escucha

  • En el código siguiente se muestra cómo determinar el nombre de tipo seguro para SimpleListener.

    Public Sub DisplaySimpleListenerStrongName()
        Dim t As Type = GetType(SimpleListener)
        MsgBox(t.FullName & ", " & t.Assembly.FullName)
    End Sub
    

    El nombre seguro del tipo depende de su proyecto.

Con el nombre seguro, puede agregar el agente de escucha a la colección de agente de escucha de registro de My.Application.Log.

Para agregar el agente de escucha a My.Application.Log

  1. Haga clic con el botón derecho en app.config en el Explorador de soluciones y seleccione Abrir.

    o bien

    Si hay un archivo app.config:

    1. En el menú Proyecto , elija Agregar nuevo elemento.

    2. En el cuadro de diálogo Agregar nuevo elemento , seleccione Archivo de configuración de aplicación.

    3. Haga clic en Agregar.

  2. Busque la sección <listeners> , en la sección <source> con el atributo name el "DefaultSource", ubicada en la sección <sources> . La sección <sources> se encuentra en la sección <system.diagnostics> , en la sección de nivel superior <configuration> .

  3. Agregue este elemento a la sección <listeners>:

    <add name="SimpleLog" />
    
  4. Busque la sección <sharedListeners> , en la sección <system.diagnostics> , en la sección de nivel superior <configuration> .

  5. Agregue este elemento a dicha sección <sharedListeners> :

    <add name="SimpleLog" type="SimpleLogStrongName" />
    

    Cambie el valor de SimpleLogStrongName para que sea el nombre seguro del agente de escucha.

Vea también