Mam niektóre usługi .NET WCF, dla tych usług skonfigurowałem plik app.config do rejestrowania wiadomości wysłanych i odebranych w pliku .svclog, który jest czytelny przez "Service Trace Viewer Tool" (SvcTraceViewer.exe). To narzędzie renderuje pliki dziennika ładnie wyraźnie pokazując przetwarzane komunikaty SOAP..NET WCF Dziennik śledzenia usług z zarządzaniem plikami dziennika (Rolling)
Muszę użyć detektora System.Diagnostics.XmlWriterTraceListener, aby poprawnie sformatować plik .svclog do przetworzenia przez narzędzie Service Trace Viewer Tool.
Problem polega na tym, że plik .svclog staje się zbyt duży. & Narzędzie śledzenia śladu usługi staje się bezużyteczne z powodu wolnego czasu odpowiedzi.
Narzędzie do śledzenia śladów serwisowych udostępnia funkcję umożliwiającą otwarcie części pliku dziennika, jeśli plik ma rozmiar> 40 MB, ale jest on zbyt wolny. Wygląda na to, że w pliku app.config nie ma możliwości skonfigurowania pliku .svclog, aby automatycznie tworzył nowy plik każdego dnia lub gdy plik osiągnie określony rozmiar.
Jest słuchaczem dziennika tekst zwany Microsoft.VisualBasic.Logging.FileLogTraceListener który ma wspierać logfilecreationschedule = „Daily” właściwość, która rzuca plik dziennika codziennie, jednak wynikowy plik dziennika z tego słuchacza jest trudne dla osoby wspierającej działanie używać, ponieważ wpisy w dzienniku nie są dobrze renderowane, a duże dokumenty XML przyczyniają się do zamieszania.
Jaka jest najlepsza praktyka w tej dziedzinie, wygląda na to, że być może będę musiała napisać niestandardowe rozszerzenie logu WCF, które wydaje się przesadą, aby poradzić sobie z brakiem funkcji przechodzenia do pliku dziennika w wbudowanym System.Diagnostics. XmlWriterTraceListener dziennika odbiornika/appender.
Eksperymentowałem również ze skryptem, aby zatrzymać moją 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 mogą zamknąć pliku otwartego przez udział sieciowy, więc nie można zmienić nazwy/przenieść starego pliku dziennika, jeśli ktoś przegląda go w udziale sieciowym. Niedługo opublikujemy osobne pytanie na ten temat.
Dzięki, Matt.
Choć jest to wykonalne, nie mają już WCF śledzenie włączone wszystkie czasy. Został zaprojektowany jako metoda rozwiązywania problemów i ma wpływ na wydajność. Wyłączenie go w środowisku produkcyjnym jest najlepszą praktyką. –