2010-08-20 6 views
8

J'utilise le C# System.Diagnostics.TextWriterTraceListener pour imprimer un tracé. Mais le fichier de trace devient trop volumineux (des centaines de Mo). Je veux changer le comportement de TextWriterTraceListener, que si le fichier de trace devient grand, il écrit la sortie dans un autre fichier. Par exemple, le fichier de trace d'origine est 'output1.txt', s'il devient plus grand que 100 Mo, alors TextWriterTraceListener devrait écrire dans 'output2.txt'.Fichier de trace TextWriterTraceListener trop grand

Avez-vous rencontré des problèmes similaires? Y a-t-il des solutions élégantes?

Répondre

5

Deux options que je peux penser:

  1. Écrivez votre propre implémentation TextWriter qui fait cela, et définissez la propriété TextWriterTraceListener.Writer à une instance de celui-ci. Voici une implémentation sample qui effectue cette opération, bien qu'elle soit effectuée sur une base de temps (quotidienne) plutôt que sur la taille d'un fichier.
  2. Passez à log4net et utilisez un RollingFileAppender.
+0

1 - log4net résoudra ce problème et a d'autres fonctionnalités à offrir comme la journalisation conditionnelle – Tahbaza

+0

Exemple de page liée dans la réponse n'existe plus, lien archivé est https://web.archive.org/web/20040628122447/ http://weblogs.asp.net/DaveBost/archive/2004/04/30/124224.aspx – tjleigh

Questions connexes