2009-07-15 8 views
7

L'écouteur suivant créera une entrée d'événement lorsque Trace.WriteLine est appelée. Si la source n'existe pas, il la créera dans le canal de journal par défaut qui est 'Application'. Je veux spécifier un autre canal par défaut mais après 45 minutes de recherche, je ne trouve pas la solution. Des idées?Comment diriger EventLogTraceListener pour créer dans un journal spécifique

<configuration> 
    <system.diagnostics> 
    <trace autoflush="false" indentsize="4"> 
     <listeners> 
     <add name="myListener"    
      type="System.Diagnostics.EventLogTraceListener" 
      initializeData="Source">   
     </add> 
     </listeners> 
    </trace> 
    </system.diagnostics> 
</configuration> 

Répondre

3

Vous n'êtes pas sûr de pouvoir le faire via la configuration.

Bien que l'EventLogTraceListener accepte un eventlog différent en tant que paramètre dans le constructeur. Malheureusement, la classe est scellée de sorte que vous ne pouvez pas en dériver simplement et transmettre une valeur différente pour le constructeur. Bien que vous puissiez suivre cette approche et construire votre propre classe (semble assez simple). Et puis référence ce type dans votre config. http://weblogs.asp.net/psteele/archive/2006/02/23/438936.aspx

-1

Vous pouvez trouver une solution pour cela dans ce blog:

http://weblogs.asp.net/psteele/438936

Il fonctionne vraiment!

+1

Vous devriez mettre les pièces essentielles dans votre poste de réponse et ajouter le lien comme une référence. –

0

Vous pouvez renommer l'écouteur dans la première ligne de code.

Trace.Listeners["MyListener"].Attributes["EventLog"] = ConfigurationManager.AppSettings["MyCustomEventLogName"]; 

La valeur peut être stockée dans la section <appSettings> du fichier de config, donc sa configuration encore basée:

<appSettings> 
    <add key="MyCustomEventLogName" value="CustomEventLogName" /> 
</appSettings> 
Questions connexes