.Net WCF Service Trace Log mit Protokolldateiverwaltung (Rolling)

Ich habe einige .Net WCF-Dienste. Für diese Dienste habe ich die Datei app.config so konfiguriert, dass die gesendeten und empfangenen Nachrichten in einer .svclog-Datei protokolliert werden, die vom "Service Trace Viewer Tool" (SvcTraceViewer.exe) gelesen werden kann. Dieses Tool rendert die Protokolldateien übersichtlich und zeigt die SOAP-Nachrichten an, die gerade verarbeitet werden.

Ich muss den Listener System.Diagnostics.XmlWriterTraceListener verwenden, um die .svclog-Datei korrekt zu formatieren, damit sie vom Service Trace Viewer Tool verarbeitet werden kann.

Das Problem, das ich habe, ist, dass die .svclog-Datei zu groß wird und das Service Trace Viewer-Tool aufgrund langsamer Antwortzeiten unbrauchbar wird.

Das Service Trace Viewer-Tool bietet eine Funktion, mit der ein Teil der Protokolldatei geöffnet werden kann, wenn die Datei größer als 40 MB ist, dies ist jedoch immer noch zu langsam. In der Datei app.config scheint es keine Möglichkeit zu geben, die .svclog-Datei so zu konfigurieren, dass sie jeden Tag automatisch eine neue Datei erstellt oder wenn die Datei eine bestimmte Größe erreicht.

Es gibt einen Textprotokoll-Listener mit dem Namen Microsoft.VisualBasic.Logging.FileLogTraceListener, der die Eigenschaft logfilecreationschedule = "Daily" unterstützt, bei dem die Protokolldatei täglich aktualisiert wird. Die daraus resultierende Protokolldatei dieses Listeners ist jedoch für einen Mitarbeiter des Operations-Supports schwierig zu verwenden Protokolleinträge werden nicht gut gerendert und die großen XML-Dokumente tragen zur Verwirrung bei.

Was ist die beste Praxis in diesem Bereich, es sieht so aus, als müsste ich möglicherweise eine benutzerdefinierte WCF-Protokollerweiterung schreiben, die überflüssig zu sein scheint, nur um das Fehlen einer Protokolldateiroll-Funktion im integrierten System.Diagnostics.XmlWriterTraceListener-Protokolllistener zu beheben / appender.

Ich habe auch mit einem Skript experimentiert, um meine Anwendung zu stoppen und die Protokolldateien umzubenennen. Dies scheint jedoch nicht möglich zu sein, da die Dienstprogramme handle.exe und openfile unter Windows eine über eine Netzwerkfreigabe geöffnete Datei nicht schließen können, sodass ich sie nicht umbenennen kann / verschiebe die alte Protokolldatei, wenn jemand sie über eine Netzwerkfreigabe durchsucht. Werde in Kürze eine separate Frage dazu stellen.

Danke, Matt.

Antworten auf die Frage(2)

Ihre Antwort auf die Frage