La structure .Net TraceSource / TraceListener a-t-elle quelque chose de similaire aux formats de format de log4net?

StackOverflow https://stackoverflow.com/questions/208735

  •  03-07-2019
  •  | 
  •  

Question

J'ai commencé à utiliser les classes intégrées TraceSource et TraceListener et je souhaite modifier le format de sortie des événements indépendamment des ressources TraceSources et TraceListeners. Il semble que les TraceListeners appliquent leur propre formatage. Est-il possible de changer complètement le formatage sans créer de nouvelle classe pour chaque TraceListener que j'utilise?

Était-ce utile?

La solution

Bloc d'applications de journalisation de la bibliothèque d'entreprise ( http://msdn.microsoft.com /en-us/library/cc309506.aspx ) est construit sur les classes .Net TraceSource et TraceListener (vous pouvez donc simplement le déposer dans votre projet et cela fonctionnera), et il prend en charge un formateur de message que vous pouvez configurer dans le fichier web.config (ou app.config).

Autres conseils

C’est beaucoup plus tard, mais les retardataires à la recherche d’une solution TraceSource / TraceListener prenant en charge un format similaire à celui disponible dans log4net, NLog et LAB, peuvent essayer Ukadc.Diagnostics . Vous pouvez configurer les TraceListeners fournis par Ukadc avec une chaîne de formatage qui sera appliquée lorsque des traces sont écrites dans le programme d'écoute. Vous pouvez également écrire vos propres jetons et les ajouter à la déclaration de mise en forme. Par exemple, j'en ai écrit un pour le plaisir qui incrémente simplement un compteur chaque fois que sa valeur est récupérée. Le résultat est que, dans le fichier journal, chaque ligne reçoit un nombre croissant séquentiellement. J’en ai écrit un autre qui permet d’ajouter à la sortie des informations de Trace.CorrelationManager.LogicalOperationStack.

Je n'ai pas un accès facile en ce moment à mon ordinateur sur lequel ce travail a été effectué, ou je publierais ces exemples.

Vous pouvez utiliser les méthodes directes Write () ou WriteLine () sur Trace pour insérer du texte droit dans votre TraceListener.

Pour ceux qui se retrouvent ici et qui recherchent toujours un formatage personnalisé pour TraceListeners, il existe également Essential.Diagnostics https: //essentialdiagnostics.codeplex.com/ (divulgation: je suis impliqué dans le projet).

Pour répondre à la question initiale, TraceListener peut accepter des propriétés personnalisées dans la configuration. Il est donc possible d'écrire un TraceListener qui gère plusieurs formats en fonction de la configuration, ce qui peut être plus souple que d'écrire plusieurs.

C’est ce que possède Essential.Diagnostics. Il comporte à la fois un ColoredConsoleTraceListener et un RollingFileTraceListener qui prennent en charge les chaînes de format personnalisé, avec de nombreuses valeurs de format déjà disponibles.

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