En mi app.config quiero establecer 3 niveles de seguimiento (¿interruptores?): Detallado, advertencia y ninguno. En la versión de depuración del código, quiero que el conmutador detallado esté activo, en la versión Quiero advertencia. En casos especiales, los usuarios de mi aplicación pueden modificar el archivo de configuración para deshabilitar todos los rastros.no puede entender .net 2010 tracing y app.config
Quiero que las huellas de depuración salgan en la consola, mientras que las versiones de liberación solo se guardan en un archivo de registro.
I', he escrito lo siguiente:
[...]
<system.diagnostics>
<sources>
<!-- This section defines the logging configuration for My.Application.Log -->
<source name="debug" switchName="debug">
<listeners>
<add name="FileLog"/>
<add name="console"/>
</listeners>
</source>
<source name="release" switchName="release">
<listeners>
<add name="FileLog"/>
</listeners>
</source>
<source name="silent" switchName="none">
<listeners/>
</source>
</sources>
<switches>
<add name="debug" value="Verbose"/>
<add name="release" value="Warning"/>
<add name="none" value="Off"/>
</switches>
<!--<sharedListeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false" />
</sharedListeners>-->
<trace autoflush="false" indentsize="4">
<listeners>
<add name="FileLog" type="System.Diagnostics.TextWriterTraceListener" traceOutputOptions="DateTime" initializeData="felix.log"/>
<add name="console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"/>
<remove name="Default"/>
</listeners>
</trace>
</system.diagnostics>
[...]
Luego, en código que llaman rastro de esta manera:
Public Shared Sub HandleException(ByVal ex As Exception)
Trace.WriteLine(ex.Message, "Error")
[...]
Hay algo que me falta Creo. ¿Cómo le digo al método Trace el interruptor correcto para usar? ¿Cómo pueden los usuarios de mi aplicación cambiar el archivo de configuración para permitir el rastreo o deshabilitarlo?
Gracias.
Muchas gracias, lo he leído todo, has arrojado algo de luz en mi oscuridad de registro :) Sugiero que escribas un artículo/publicación en un blog/página web, lo que sea para concentrar toda esta información que de otro modo se difundiría . Si lo haces, entonces ¡envíame el enlace! Gracias de nuevo. – vulkanino
Finalmente lo descubrí, pero aún no puedo obtener el uso de la identificación para pasar al método TraceEvent. Si el origen de rastreo me permite configurar dónde (oyentes) y cuánto (interruptores) registrar, y luego especifico programáticamente el tipo de evento (TraceEventType), ¿de qué sirve tener que especificar un Id también? – vulkanino
Para obtener una idea sobre los identificadores de eventos, consulte la primera respuesta a esta pregunta: http://stackoverflow.com/questions/576185/logging-best-practices Consulte "Otras recomendaciones". Siguiendo esa sugerencia, puede categorizar cada mensaje de registro (independientemente de TraceSource, TraceEventType o el mensaje). Sería relativamente fácil consultar/buscar su salida para ciertos tipos de mensajes. Por ejemplo, si el Id. De evento 1001 significa "leer desde un archivo" y 1002 significa "escribir en un archivo", puede encontrar todos los mensajes de registro en su salida que correspondan a la lectura o escritura de un archivo. – wageoghe