Question

L'auditeur suivant crée une entrée d'événement lorsque le Trace.WriteLine est appelé. Si la source n'existe pas, il créera dans le canal du journal par défaut qui est « Application ». Je veux spécifier un autre canal par défaut du journal, mais après avoir cherché pendant 45 minutes, je ne semble pas trouver la solution. Toutes les idées?

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

La solution

Je ne sais pas que vous pouvez par la config.

Bien que le EventLogTraceListener accepte les 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 déduire simplement de lui et passer une valeur différente pour le constructeur.

Bien que vous puissiez suivre cette approche et construire votre propre classe (semble assez simple). Et puis faire référence à ce type dans votre config. http://weblogs.asp.net/psteele/archive/ 2006/02/23 / 438936.aspx

Autres conseils

Vous pouvez rejointoyer l'auditeur 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>

Vous pouvez trouver une solution pour cela dans ce blog:

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

Il fonctionne vraiment!

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top