Je voudrais que mon application écrive différents fichiers de trace nommés comme MachineName_UserName_yyyymmdd_hhmmss.txt où le nom d'utilisateur est l'utilisateur actuellement connecté et l'heure est l'heure de début de l'application. L'écouteur .Net TextWriterTraceListener semble uniquement prendre en charge un nom de fichier codé en dur spécifié dans le fichier de configuration. Est-il possible de le faire sans écrire un écouteur de trace personnalisé..Net Personnalisé Nom du fichier de trace
En supposant que je dois écrire un écouteur de trace personnalisé, je l'ai mis en place un TraceListener comme ceci:
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
Dans le fichier de configuration, j'ai configuré la source comme de trace ceci:
<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>
Je crée la source de trace comme suit:
Dim tsTraceSource As TraceSource = New TraceSource("MyTraceSource")
tsTraceSource.TraceEvent(TraceEventType.Warning, 0, "warning message")
Cependant, au démarrage, je continue à obtenir une erreur que le type "MyNameSpace.MycustomTraceListener" n'a pas pu être trouvé.
Est-ce que quelqu'un voit quel est le problème ici?
Merci.
Cela fonctionne. Je vous remercie. – DevByDefault