Me gustaría que mi aplicación escriba diferentes archivos de rastreo nombrados como MachineName_UserName_aaaammdd_hhmmss.txt donde el nombre de usuario es el usuario actualmente conectado y la hora es la hora de inicio de la aplicación. El oyente .Net TextWriterTraceListener solo parece soportar un nombre de archivo codificado duro especificado en el archivo de configuración. ¿Hay alguna manera de hacer esto sin escribir un escucha de seguimiento personalizado?.Net Custom Trace file name
Suponiendo que tengo que escribir un oyente de seguimiento personalizado, he implementado un TraceListener así:
Imports System.Diagnostics
Public Class MyCustomTraceListener
Inherits TextWriterTraceListener
Public Sub New()
'Need to do it this way as the Base constructor call has to be the first statement
MyBase.New(String.Format("AppNameTraceFile_{0}_{1}_{2}{3}{4}-{5}{6}{7}.txt", _
Environment.MachineName, _
Environment.UserName, _
DateTime.Now.ToString("yyyy"), _
DateTime.Now.ToString("MM"), _
DateTime.Now.ToString("dd"), _
DateTime.Now.ToString("HH"), _
DateTime.Now.ToString("mm"), _
DateTime.Now.ToString("ss")))
Me.IndentSize = 4
End Sub
End Class
En el archivo de configuración, he configurado el origen de seguimiento de esta manera:
<system.diagnostics>
<trace autoflush="true"/>
<sources>
<source name="MyTraceSource"
switchName="mySwitch"
switchType="System.Diagnostics.SourceSwitch" >
<listeners>
<clear/>
<add name="MyTraceListener"
type="MyNameSpace.MyCustomTraceListener"
traceOutputOptions="ProcessId, DateTime, Callstack" />
</listeners>
</source>
</sources>
<switches>
<add name="mySwitch" value="Warning" />
</switches>
</system.diagnostics>
Estoy creando la fuente de seguimiento como lo siguiente:
Dim tsTraceSource As TraceSource = New TraceSource("MyTraceSource")
tsTraceSource.TraceEvent(TraceEventType.Warning, 0, "warning message")
Sin embargo, al inicio, sigo recibiendo un error que no se pudo encontrar el tipo "MyNameSpace.MycustomTraceListener".
¿Alguien ve cuál es el problema aquí?
Gracias.
Esto funciona. Gracias. – DevByDefault