Duplication de fichier de trace (System.Diagnostics)
Bonjour à tous,
Pour un service que j'ai créer, j'utilise un fichier de trace déclaré comme suit :
Code:
1 2 3 4 5 6 7 8 9 10 11 12
|
<!-- La trace -->
<system.diagnostics>
<trace autoflush="true" indentsize="4">
<listeners>
<add name="myListener"
type="System.Diagnostics.TextWriterTraceListener"
initializeData="TraceLog.txt" />
<remove name="Default" />
</listeners>
</trace>
</system.diagnostics> |
Etant donné que je veux le fichier de trace à l'endroit où est installé le service, j'appelle cette méthode, au démarrage de ce dernier:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
|
public static void InitTraceLog()
{
if (Trace.Listeners.Count > 0)
{
// On récupère le listener déclaré
TextWriterTraceListener oldListener = (TextWriterTraceListener)Trace.Listeners[0];
string sPathDyn = Path.Combine(System.Windows.Forms.Application.StartupPath, "TraceLog.txt");
if (!File.Exists(sPathDyn))
File.Create(sPathDyn);
// Construction d'un nouveau listener avec les paramètres de l'ancien et un chemin dynamique
TextWriterTraceListener newListener = new TextWriterTraceListener(sPathDyn);
newListener.TraceOutputOptions = oldListener.TraceOutputOptions;
Trace.AutoFlush = true;
Trace.Listeners.RemoveAt(0); // On dégage le listener courant
Trace.Listeners.Add(newListener); // et on ajoute le nouveau
}
} |
Ce code fonctionne bien. Par contre si le fichier Tracelog.txt n’existe pas au lancement du service, je me retrouve avec deux fichiers :
1) TraceLog.txt => créer avec la ligne File.Create(sPathDyn);
2) a81b86ad-d62a-4adc-84a2-ff5862724feaTraceLog.txt => créer dès que j'appelle Trace.WriteLine() dans le code du service! Et c'est ce dernier qui est utilisé pour toutes les traces!
Dans le cas où le fichier Tracelog.txt existe deja (quand je redémarre mon service par exemple). C'est bien le tracelog.txt qui est utilisé. Et il n'y a pas d'autre fichier style "GUID"Tracelog.txt de créé!
Ca n'est pas très embêtant dans l'absolue, mais je n'arrive pas à savoir d'où sors ce "GUID"Tracelog.txt et pourquoi?