Quelle est la meilleure façon de se connecter à un fichier en utilisant log4net qui a le format correct (XML correct, le format d'horodatage correct, des données personnalisées au format correct, les attributs corrects, fondamentalement exactement la même manière que XmlWriterTraceListener le fait) ainsi il peut être regardé dans le Service Trace Viewer Tool (SvcTraceViewer.exe)?En utilisant log4net pour créer des fichiers journaux qui peuvent être vues avec SvcTraceViewer.exe
En utilisant log4net pour créer des fichiers journaux qui peuvent être vues avec SvcTraceViewer.exe
Répondre
Pas une réponse, mais j'ai demandé un question plus tôt aujourd'hui sur la journalisation et WCF et l'une des choses que je voulais savoir était sur Service Trace Viewer. Tous les exemples que j'ai vus décrivent les fichiers XML consommés par Service Trace Viewer générés via System.Diagnostics TraceSources et System.Diagnostics XmlFileListener. Quoi qu'il en soit, si je reçois des réponses dans mon post, vous les trouverez peut-être utiles.
Si je le voulais, j'écrirais ma mise en page personnalisée. Je n'ai pas (encore) regardé les détails mais j'écrirais un cours qui dérive de XmlLayoutBase
. J'ai besoin de plus de temps pour regarder les détails ...
Vous pouvez aussi écrire votre propre appender mais je pense que dans ce cas, il est plus logique d'écrire une classe de mise en page.
Éditer: Il est peut-être bon d'écrire votre propre appender. Dans ce cas, vous pouvez utiliser la classe System.ServiceModel.Diagnostics.DiagnosticTrace
. Je ne sais pas encore si c'est le chemin à parcourir. Je n'ai pas beaucoup de temps en ce moment, mais je vais examiner cela.
Je pense qu'il faudra beaucoup de temps pour imiter complètement le format avec toutes les options du XmlWriterTraceListener. – bitbonk
C'est ce que je crains aussi d'où ma nouvelle proposition. –
Quelle classe System.ServiceModel.Diagnostics.DiagnosticTrace voulez-vous dire? Dans le GAC, je n'en trouve qu'un qui soit interne et ne peut pas être utilisé. – bitbonk
Voici une idée:
Vous pouvez écrire un log4net personnalisé Appender et l'ont écrire des messages (indirectement) au XmlWriterTraceListener. Dans la méthode Append vous envoyez simplement le message à System.Diagnostics.
Voici un example d'une coutume Appender.
Dans l'exemple, Append est substitué. Il est passé une classe/structure LoggingEvent. Pour vos besoins (pour que la sortie log4net soit routée vers un format de sortie pouvant être lu par SvcTraceViewer), vous pouvez écrire votre sortie dans System.Diagnostics (après l'avoir configuré pour vous connecter à XmlWriterTraceListener). Vous pouvez écrire en utilisant les méthodes Trace.Write *, Trace.Trace * ou TraceSources.
Pour TraceSources, vous pouvez envisager le nom de TraceSource être le même que le nom de l'enregistreur (qui est disponible dans la classe/structure LoggingEvent). Ainsi, vous pouvez configurer un TraceSource dans votre fichier app.config pour chaque nom de log4net que vous voulez entrer dans le fichier xml. La logique de votre Append pourrait alors ressembler à ceci:
protected override void Append(LoggingEvent le)
{
TraceSource ts = new TraceSource(le.LoggerName); // Not sure of logger name field in LoggingEvent
ts.TraceEvent(LogLevelToTraceEventType(le.Level), 0, le.FormattedMessage);
}
Cela pourrait vous donner ce que vous voulez. Notez que je n'ai pas réellement fait cela, donc je ne peux pas dire si c'est une bonne idée ou pas, mais il semble que cela fonctionne.
Désolé d'être bref, mais j'essaye de finir ceci avant de devoir partir.
L'écriture d'un appender personnalisé (dans le seul but de la mise en forme) a un inconvénient: Je ne peux pas utiliser tous les autres appenders (RollingFileAppender, FileAppender, ...) ou je dois sous-classe tous. – bitbonk
FWIW, vous pouvez trouver le code pour le XmlWriterTraceListener ici: http://www.koders.com/csharp/fid7ECC273D0A665AFFDB9276AC64289085CD1E2A8E.aspx?s=DateTime Je ne sais pas comment il est courant (ie .NET 1.1, 2.0, 3.0 , etc.), mais il semble montrer comment était le xml dans un format qui peut être consommé par SvcTraceViewer. Peut-être que cela pourrait être utilisé pour développer un XmlLayout. Je ne suis pas vraiment très familier avec l'écriture de mises en page log4net, donc je ne peux pas dire si cela est une bonne idée ou non. – wageoghe
Un appender personnalisé est à mon humble avis pas possible parce que je ne peux pas écrire à d'autres appenders en utilisant ce format même. Je voudrais écrire à RollingFileAppender en utilisant le format. – bitbonk
- 1. php créer des fichiers qui ne peuvent pas être supprimés
- 2. Log4net: fichiers journaux distincts pour chaque classe
- 3. log4net - Journaux manquants
- 4. créer Programmatically différents fichiers journaux en utilisant log4j
- 5. SSIS: Comment créer des fichiers journaux personnalisés?
- 6. Les fichiers journaux log4net disparaissent lorsque le service est redémarré
- 7. nHibernate désactive mes journaux log4net
- 8. Log4Net peut-il supprimer automatiquement les fichiers journaux?
- 9. Quels verrous de fichiers peuvent être ignorés ... en règle générale?
- 10. Les appendeurs log4net peuvent-ils être définis dans leurs propres fichiers XML?
- 11. Gestion des fichiers journaux volumineux
- 12. Scientifiques Algorithmes qui peuvent produire des images, pseudocode peut-être?
- 13. Comment créer une image 404? Pour les images qui ne peuvent pas être lues par ASP.NET
- 14. C# Log4Net - modifier dynamiquement le répertoire des journaux par programme
- 15. Log4net créer des niveaux personnalisés
- 16. Meilleure (s) pratique (s) pour la visionneuse de journaux en temps réel sur l'écran pour log4net
- 17. les vues en ligne peuvent être utilisées pour les instructions java au lieu de créer une table temporaire
- 18. Comment créer des vues personnalisées pour AppWidgets?
- 19. Les fichiers peuvent-ils être imbriqués?
- 20. WPF créer une liste de contrôles qui peuvent être parcourus avec la souris mais restent fonctionnels
- 21. LINQ to SQL: propriétés des propriétés qui peuvent être null
- 22. Suppression des fichiers journaux MySQL
- 23. Configurer plusieurs fichiers journaux dans log4j en utilisant les catégories
- 24. liste des opérateurs ruby qui peuvent être remplacés/implémentés
- 25. Visionneuse de journaux distants pour les fichiers journaux Java/Glassfish
- 26. Les données peuvent formater I qui doit être écrit dans le fichier CSV en utilisant java
- 27. Comment faire en sorte que log4net génère des fichiers journaux lorsqu'il est exécuté en tant qu'utilisateur non-administrateur?
- 28. Fichiers journaux avec des noms étranges (Enterprise Library)
- 29. Est-ce que stackoverflow a des API qui peuvent être utilisées pour créer des plugins sur d'autres sites web?
- 30. Solr pour l'indexation des fichiers journaux de l'application
Je pense que vous voulez dire System.Diagnostics.XmlWriterTraceListener. – bitbonk
Vous avez raison. J'ai tapé cela sans vérifier le nom exact de l'écouteur. Quoi qu'il en soit, je suis toujours intéressé par la façon d'obtenir la sortie (si c'est possible) de log4net, NLog, etc qui est compatible avec SvcTraceViewer.exe. – wageoghe