2010-12-03 48 views
4

fichier de configuration:TextWriterTraceListener ne fonctionne pas

<system.diagnostics> 
    <trace> 
     <listeners> 
     <add name="Console" type="System.Diagnostics.ConsoleTraceListener" initializeData="false"></add> 
     <add name="Text" type="System.Diagnostics.TextWriterTraceListener" initializeData="D:\uat\logs\bifit.log" traceOutputOptions="DateTime"></add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 

Le code:

static void Main(string[] args) 
     { 
      try 
      { 
       Trace.WriteLine("Running BiFit Test Server."); 
      } 
     } 

Je peux voir le texte dans la fenêtre cosole. Et le fichier est créé, mais vide. Je me souviens qu'il y a quelque chose comme la propriété Autoflush quelque part?

Répondre

10

Vous souvenez-vous correctement - il est défini sur l'élément trace:

<trace autoflush="true"> 
    ... 
</trace> 

autoflush - Attribut optionnel. Indique si les écouteurs de trace vident automatiquement le tampon de sortie après chaque opération d'écriture.

+0

Merci, mais cet attribut s'applique à tous les écouteurs. Mais les écouteurs de la console fonctionne contrairement au premier fichier. –

+0

@Captain Comic - Je ne peux pas changer comment cela fonctionne, j'ai peur. Et est-ce important que le tampon de sortie de la console soit également vidé? – Oded

+0

Cela a fonctionné. Tu as sauvé ma journée! –

3

Je pense qu'il est:

<system.diagnostics> 
    <trace autoflush="true"> 
     ... 
    </trace> 
</system.diagnostics> 
2

Vous pouvez appeler Trace.Flush() une fois que vous avez terminé vos opérations de type Trace.Write.

+0

Yeap. Une autre option. –