.Net WCF Service Trace Log z zarządzaniem plikami dziennika (Rolling)

Mam niektóre usługi WCF .Net, dla tych usług skonfigurowałem plik app.config, aby rejestrować wiadomości wysyłane i odbierane w pliku .svclog, który można odczytać za pomocą narzędzia Service Trace Viewer Tool (SvcTraceViewer.exe). To narzędzie ładnie wyświetla pliki dziennika, pokazując przetwarzane komunikaty SOAP.

Muszę użyć nasłuchiwania System.Diagnostics.XmlWriterTraceListener, aby poprawnie sformatować plik .svclog w taki sposób, aby mógł być przetwarzany przez narzędzie Przeglądarka śledzenia usługi.

Mam problem z tym, że plik .svclog staje się zbyt duży, a narzędzie Service Trace Viewer staje się bezużyteczne ze względu na długi czas odpowiedzi.

Narzędzie Podgląd śladów usług udostępnia funkcję umożliwiającą otwarcie części pliku dziennika, jeśli rozmiar pliku jest> 40 MB, ale jest to nadal zbyt wolne. Wydaje się, że w pliku app.config nie ma żadnego narzędzia, które umożliwia skonfigurowanie pliku .svclog do automatycznego tworzenia nowego pliku każdego dnia lub gdy plik osiągnie określony rozmiar.

Istnieje program nasłuchiwania dziennika tekstowego o nazwie Microsoft.VisualBasic.Logging.FileLogTraceListener, który obsługuje właściwość logfilecreationschedule = "Daily", która codziennie przetwarza plik dziennika, jednak wynikowy plik dziennika z tego słuchacza jest trudny do wykorzystania przez osobę obsługującą operację jako wpisy dziennika nie są dobrze renderowane, a duże dokumenty xml przyczyniają się do zamieszania.

Jaka jest najlepsza praktyka w tym obszarze, wygląda na to, że będę musiał napisać niestandardowe rozszerzenie dziennika WCF, które wydaje się przesadą, aby poradzić sobie z brakiem funkcji zwijania pliku dziennika w wbudowanym narzędziu LogDistel.XmlWriterTraceListener / aplikant.

Eksperymentowałem również ze skryptem, aby zatrzymać aplikację i zmienić nazwy plików dziennika, ale nie wydaje się to możliwe, ponieważ w systemie Windows narzędzia handle.exe i openfile nie są w stanie zamknąć pliku otwartego przez udział sieciowy, więc nie mogę zmienić nazwy / przenieś stary plik dziennika, jeśli ktoś przegląda go w udziale sieciowym. Wkrótce opublikuję osobne pytanie na ten temat.

Dzięki, Matt.

questionAnswers(2)

yourAnswerToTheQuestion