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 cambiar el filtrado de registros predeterminado para el My.Application.Log
objeto para controlar qué información se pasa del Log
objeto a los agentes de escucha y qué información escriben los agentes de escucha. Puede cambiar el comportamiento de registro incluso después de compilar la aplicación, ya que la información de configuración se almacena en el archivo de configuración de la aplicación.
Introducción
Cada mensaje que My.Application.Log
escribe tiene un nivel de gravedad asociado, que los mecanismos de filtrado usan para controlar la salida del registro. Esta aplicación de ejemplo usa My.Application.Log
métodos para escribir varios mensajes de registro con distintos niveles de gravedad.
Para crear la aplicación de ejemplo
Abra un nuevo proyecto de aplicación windows de Visual Basic.
Agregue un botón denominado Button1 a Form1.
En el Click controlador de eventos de Button1, agregue el código siguiente:
' Activity tracing information My.Application.Log.WriteEntry("Entering Button1_Click", TraceEventType.Start) ' Tracing information My.Application.Log.WriteEntry("In Button1_Click", TraceEventType.Information) ' Create an exception to log. Dim ex As New ApplicationException ' Exception information My.Application.Log.WriteException(ex) ' Activity tracing information My.Application.Log.WriteEntry("Leaving Button1_Click", TraceEventType.Stop)
Ejecute la aplicación en el depurador.
Pulse Button1.
La aplicación escribe la siguiente información en el archivo de registro y de salida de la depuración de la aplicación.
DefaultSource Information: 0 : In Button1_Click
DefaultSource Error: 2 : Error in the application.
Cierre la aplicación.
Para obtener información sobre cómo ver la ventana de salida de depuración de la aplicación, consulte Ventana de salida. Para obtener información sobre la ubicación del archivo de registro de la aplicación, consulte Tutorial: Determinar dónde escribe My.Application.Log información.
Nota:
De forma predeterminada, la aplicación vacía la salida del archivo de registro cuando se cierra la aplicación.
En el ejemplo anterior, la segunda llamada al WriteEntry método y la llamada al WriteException método produce la salida del registro, mientras que la primera y la última llamada al
WriteEntry
método no lo hacen. Esto se debe a que los niveles de gravedad deWriteEntry
yWriteException
son "Información" y "Error", ambos permitidos por el filtrado de logs predeterminado del objetoMy.Application.Log
. En cambio, los eventos con niveles de gravedad "Start" y "Stop" no pueden generar el resultado del registro.
Filtrado para todos los agentes de escucha de My.Application.Log
El objeto My.Application.Log
usa un objeto SourceSwitch denominado DefaultSwitch
para controlar qué mensajes pasa de los métodos WriteEntry
y WriteException
a los agentes de escucha de registro. Puede configurar DefaultSwitch
en el archivo de configuración de la aplicación estableciendo su valor en uno de los SourceLevels valores de enumeración. De forma predeterminada, su valor es "Information".
En esta tabla se muestra el nivel de gravedad necesario para que el Log escriba un mensaje a los oyentes, dada una configuración determinada DefaultSwitch
.
Valor DefaultSwitch | Gravedad del mensaje que se necesita para el resultado |
---|---|
Critical |
Critical |
Error |
Critical o Error |
Warning |
Critical , Error o Warning |
Information |
Critical , Error , Warning o Information |
Verbose |
Critical , Error , Warning , Information o Verbose |
ActivityTracing |
Start , Stop , Suspend , Resume o Transfer |
All |
Se permiten todos los mensajes. |
Off |
Todos los mensajes están bloqueados. |
Nota:
El método WriteEntry
y el método WriteException
cada uno tiene una sobrecarga que no especifica un nivel de gravedad. El nivel de gravedad implícito de la WriteEntry
sobrecarga es "Información", y el nivel de gravedad implícito para la WriteException
sobrecarga es "Error".
En esta tabla se explica la salida del log que se muestra en el ejemplo anterior: con la configuración predeterminada DefaultSwitch
de "Information", solo la segunda llamada al método WriteEntry
y la llamada al método WriteException
producen salida de log.
Para registrar solo eventos de seguimiento de actividad
Haga clic con el botón derecho en app.config en el Explorador de soluciones y seleccione Abrir.
-o-
Si no hay ningún 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.
Busque la sección
<switches>
, en la sección<system.diagnostics>
, que se encuentra en la sección de nivel superior<configuration>
.Busque el elemento que agrega
DefaultSwitch
a la colección de interruptores. Debe ser similar a este elemento:<add name="DefaultSwitch" value="Information" />
Cambie el valor del
value
atributo a "ActivityTracing".El contenido del archivo app.config debe ser similar al siguiente XML:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="ActivityTracing" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> </sharedListeners> </system.diagnostics> </configuration>
Ejecute la aplicación en el depurador.
Pulse Button1.
La aplicación escribe la siguiente información en el archivo de registro y de salida de la depuración de la aplicación:
DefaultSource Start: 4 : Entering Button1_Click
DefaultSource Stop: 5 : Leaving Button1_Click
Cierre la aplicación.
Cambie el valor del
value
atributo a "Information".Nota:
La configuración del modificador
DefaultSwitch
solo controlaMy.Application.Log
. No cambia el comportamiento de las clases System.Diagnostics.Trace y System.Diagnostics.Debug de .NET.
Filtrado individual para los agentes de escucha de My.Application.Log
En el ejemplo anterior se muestra cómo cambiar el filtrado de todas las My.Application.Log
salidas. En este ejemplo se muestra cómo filtrar un agente de escucha de registro individual. De manera predeterminada, una aplicación tiene dos agentes de escucha que escriben en el archivo de registro y de salida de la depuración de la aplicación.
El archivo de configuración controla el comportamiento de los agentes de escucha de registro permitiendo que cada uno tenga un filtro, que es similar a un modificador para My.Application.Log
. Un agente de escucha de registro generará un mensaje solo si la gravedad de este se permite por el filtro del agente de escucha de registro y del DefaultSwitch
del registro.
En este ejemplo se muestra cómo configurar el filtrado para un nuevo agente de escucha de depuración y agregarlo al objeto Log
. El agente de escucha de depuración predeterminado debe quitarse del objeto Log
, por lo que es evidente que los mensajes de depuración provienen del nuevo agente de escucha de depuración.
Para registrar solo eventos de seguimiento de actividad
Haga clic con el botón derecho en app.config en el Explorador de soluciones y elija Abrir.
-o-
Si no hay ningún 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.
Haga clic con el botón derecho en app.config en el Explorador de soluciones. Elija Abrir.
Busque la
<listeners>
sección en la sección<source>
que tiene el atributoname
"DefaultSource", ubicada en la sección<sources>
. La sección<sources>
está en la sección<system.diagnostics>
, en la sección de nivel superior<configuration>
.Agregue este elemento a la
<listeners>
sección :<!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/>
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="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add>
El EventTypeFilter filtro toma uno de los SourceLevels valores de enumeración como su
initializeData
atributo.El contenido del archivo app.config debe ser similar al siguiente XML:
<?xml version="1.0" encoding="utf-8" ?> <configuration> <system.diagnostics> <sources> <!-- This section configures My.Application.Log --> <source name="DefaultSource" switchName="DefaultSwitch"> <listeners> <add name="FileLog"/> <!-- Remove the default debug listener. --> <remove name="Default"/> <!-- Add a filterable debug listener. --> <add name="NewDefault"/> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="Information" /> </switches> <sharedListeners> <add name="FileLog" type="Microsoft.VisualBasic.Logging.FileLogTraceListener, Microsoft.VisualBasic, Version=8.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a, processorArchitecture=MSIL" initializeData="FileLogWriter"/> <add name="NewDefault" type="System.Diagnostics.DefaultTraceListener, System, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089, processorArchitecture=MSIL"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Error" /> </add> </sharedListeners> </system.diagnostics> </configuration>
Ejecute la aplicación en el depurador.
Pulse Button1.
La aplicación escribe la siguiente información en el archivo de registro de la aplicación:
Default Information: 0 : In Button1_Click
Default Error: 2 : Error in the application.
La aplicación escribe menos información en el resultado de depuración de la aplicación porque el filtrado es más restrictivo.
Default Error 2 Error
Cierre la aplicación.
Para obtener más información sobre cómo cambiar la configuración del registro después de la implementación, consulte Trabajar con registros de aplicaciones.
Consulte también
- Tutorial: Determinar el lugar en el que My.Application.Log escribe la información
- Tutorial: Cambiar el lugar en el que My.Application.Log escribe la información
- Guía paso a paso: Creación de escuchadores de registros personalizados
- Cómo: Escribir mensajes de registro
- Modificadores de seguimiento
- Registro de datos desde la aplicación