Nota:
El acceso a esta página requiere autorización. Puede intentar iniciar sesión o cambiar directorios.
El acceso a esta página requiere autorización. Puede intentar cambiar los directorios.
En este tutorial se muestra cómo crear un agente de escucha de registro personalizado y configurarlo para escuchar la salida del My.Application.Log objeto.
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
SimpleListenerque 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 ClassLos métodos Write y WriteLine, requeridos por la clase base, llaman a
MsgBoxpara mostrar su entrada.El HostProtectionAttribute atributo se aplica a los Write métodos 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 revela la sincronización para la protección del host.
Nota:
El HostProtectionAttribute atributo solo es eficaz en aplicaciones no administradas que hospedan Common Language Runtime y que implementan la protección de host, como SQL Server.
Para asegurarse de que My.Application.Log usa su escuchador de registros, debe asignar de forma segura un nombre al ensamblado que contiene su escuchador de registros.
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
Seleccione un proyecto en el Explorador de soluciones. En el menú Proyecto , elija Propiedades.
Haga clic en la pestaña Firma .
Seleccione la casilla Firmar el ensamblado.
Seleccione <Nuevo> en la lista desplegable Elegir un archivo de clave de nombre seguro .
Se abre el cuadro de diálogo Crear clave de nombre seguro .
Proporcione un nombre para el archivo de clave en el cuadro Nombre de archivo de clave.
Escriba una contraseña en los cuadros Escribir contraseña y Confirmar contraseña .
Haz clic en Aceptar.
Recompile 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 SubEl 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
Haga clic con el botón derecho en app.config en el Explorador de soluciones y elija Abrir.
-o-
Si hay un archivo app.config:
En el menú Proyecto , elija Agregar nuevo elemento.
En el cuadro de diálogo Agregar nuevo elemento , elija Archivo de configuración de la aplicación.
Haga clic en Agregar.
Localice la sección
<listeners>, en la sección<source>con el atributoname"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>.Agregue este elemento a la
<listeners>sección :<add name="SimpleLog" />Busque la sección
<sharedListeners>, dentro de la sección<system.diagnostics>, dentro de la sección de nivel superior<configuration>.Agregue este elemento a esa
<sharedListeners>sección:<add name="SimpleLog" type="SimpleLogStrongName" />Cambie el valor de
SimpleLogStrongNamepara que sea el nombre seguro del agente de escucha.