Ich möchte, dass meine Anwendung verschiedene Ablaufverfolgungsdateien wie MachineName_UserName_yyyymmdd_hhmmss.txt schreiben, wobei der Benutzername der aktuell angemeldete Benutzer ist und die Uhrzeit die Startzeit der Anwendung ist. Der .Net-Listener TextWriterTraceListener scheint nur einen fest codierten Dateinamen zu unterstützen, der in der Konfigurationsdatei angegeben ist. Gibt es eine Möglichkeit, dies zu tun, ohne einen benutzerdefinierten Ablaufverfolgungslistener zu schreiben..Net Benutzerdefinierte Trace-Dateiname
Angenommen, ich habe einen eigenen Spur Zuhörer zu schreiben, habe ich eine Tracelistener wie diese umgesetzt haben:
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
In der Konfigurationsdatei habe ich die Trace-Quelle wie folgt konfiguriert:
<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>
Ich erstelle die Ablaufverfolgungsquelle wie folgt:
Allerdings, beim Start, bekomme ich immer ein Fehler, dass der Typ "MyNameSpace.MycustomTraceListener" nicht gefunden wurde.
Kann jemand sehen, was das Problem hier ist?
Danke.
Dies funktioniert. Vielen Dank. – DevByDefault