.NET Trace à un fichier ne fonctionne pas
Je suis en train de suivre des choses étranges se passe dans mon application Windows Forms avec un TextWriterTraceListener pointé vers un emplacement de fichier. Je l'ai réglé de sorte que la première fois que l'application doit tracer quelque chose au cours de l'exécution du programme, il crée la trace de l'écouteur et l'enregistre.
Cependant, il semble que le fichier de trace ne se créé, rien ne s'est présenté à C:\GMS2Trace.log. J'ai vérifié que le programme a atteint des parties du code qui appel la méthode trace.
Ma trace à quoi ressemble le code:
internal static void traceWarning(string message)
{
if (!traceEnabled)
{
traceEnabled = true;
Trace.Listeners.Add(new TextWriterTraceListener(@"C:\GMS2Trace.log"));
}
Trace.TraceWarning(getTimeStamp() + " " + message);
}
Est-il un problème avec l'emplacement du fichier de trace, ou quelque chose d'autre?
source d'informationauteur Tony Peterson
Vous devez vous connecter pour publier un commentaire.
Vous pouvez configurer tout cela à partir de l'app.config et il suffit d'utiliser:
Exemple de l'un de mes projets:
Rappelez-vous cependant que l'ensemble de la Console.Writeline allso finit dans le fichier
Ajouter
après l'ajout d'un écouteur
Vous devez également vous assurer que la TRACE constante est définie lorsque vous générez le projet:
Il est désactivé par défaut pour la configuration Release sens que l'appel à
Trace.TraceWarning
est complètement optimisé.Vous devez configurer le niveau de trace dans l'application.fichier de configuration
Et compiler avec suivi activé
csc.exe /d:TRACE
ou par l'ajout de#define TRACE
vers le haut de votre fichierVous pouvez le faire dans le code:
Ce qui m'est arrivé je n'avais pas d'autorisations d'écriture dans le répertoire que j'avais configuré mon fichier journal.
En fait, la Trace a été écrit à partir d'une application COM+ exécute en tant que service Local et l'utilisateur n'a pas les permissions sur le dossier cible.
L'exception était transparente (pour le programme) avalé par l'auditeur, et je n'ai réalisé que lorsque Visual Studio montré l'exception dans la fenêtre de sortie après avoir essayé d'écrire la Trace de la première ligne.
Changer l'Identité d'un utilisateur avec les autorisations ou l'ajout d'autorisations pour LocalService vers le dossier cible a fait l'affaire pour moi.