log .net logging trace

.net - log - ¿Cómo controla el nivel de un detector de trazas en el archivo de configuración?



trace listener (2)

Aquí encontrará un resumen decente:

http://www.15seconds.com/issue/020910.htm

Estoy tratando de aprender las características integradas de rastreo. No puedo averiguar cómo usar la configuración para establecer el nivel (información, advertencia, error) que se escribe para escuchar.

Tengo la aplicación por defecto .config con ella. En mi código, uso Trace.TraceInformation () y Trace.TraceError.

Todos los mensajes están escritos en mi archivo de texto. Quiero poder cambiar algo en la aplicación .config para hacer que grabe mensajes de información o solo mensajes de error.

Module1.vb

Sub Main(ByVal args() As String) Dim index As Integer = 0 For Each arg As String In args Trace.TraceInformation(String.Format("Sub Main(): arg({1}) = {0}", arg, index)) Trace.Flush() If arg.Split("=").Count = 2 Then If String.Compare(arg.Split("=")(0), "mode", True) = 0 Then _Mode = arg.Split("=")(1) End If index += 1 Next End Sub

app.config

<sources> <!-- This section defines the logging configuration for My.Application.Log --> <source name="DefaultSource"> <listeners> <add name="FileLog"/> <!-- Uncomment the below section to write to the Application Event Log --> <!--<add name="EventLog"/>--> </listeners> </source> </sources> <switches> <add name="DefaultSwitch" value="1" /> </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"/> <!-- Uncomment the below section and replace APPLICATION_NAME with the name of your application to write to the Application Event Log --> <!--<add name="EventLog" type="System.Diagnostics.EventLogTraceListener" initializeData="HealthSurvey Console"/> --> </sharedListeners> </system.diagnostics>


No soy un fanático de responder tus propias preguntas, pero tampoco me gusta dejar preguntas sin marcar algo como la respuesta. Esto es especialmente cierto cuando encontré lo que estaba buscando.

Este link tenía la información que necesitaba. Lo resumiré porque es bastante largo. En la configuración, agrega un oyente. La clave que necesitaba era usar el <filter> para el oyente. Con él, puedo implementar mi aplicación y luego cambiar la configuración para controlar el texto escrito en el archivo. Podría agregar otro oyente que tuviera un filtro diferente como quizás el registro de eventos.

De todos modos, la clave era <filter> . El atributo initializeData se establece en el texto de System.Diagnostics.SourceLevels enum.

  • La información permite información, advertencia y error.
  • Advertencia permite advertencia y error
  • El error permite solo el error

app.config

<system.diagnostics> <trace autoflush="false" indentsize="1"> <listeners> <add name="textListener" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="None" initializeData="C:/Projects/TraceLogOutput.log"> <filter type="System.Diagnostics.EventTypeFilter" initializeData="Information"/> </add> <remove name="Default" /> </listeners> </trace>

módulo1.vb

Sub Main(ByVal args() As String) '' initializeData = Information only Trace.TraceInformation("Some Information message") Trace.Flush() '' initializeData = Information or Warning Trace.TraceWarning("Some Warning message") Trace.Flush() '' initializeData = Information, Warning or Error Trace.TraceError("Some Error message") Trace.Flush() End Sub