W poprzednich częściach (1,2,3) przedstawiłem już podstawy związane ze śledzeniem przebiegu programu i logowaniem zdarzeń na platformie .NET, a w przykładzie zostało pokazane jak można wykorzystać tą metodologię.
Oczywiście to nie wszystko co można w ten sposób osiągnąć. Interesująca wydaje się zwłaszcza możliwość implementacji własnego Trace Listener'a. Dzięki temu mamy większą swobodę w wyborze miejsca do którego będą trafiały nasze logi. Nie musi być to plik w dziwnym formacie (choć może), czy inne poza standardowym wykorzystanie rejestru zdarzeń systemu Windows. Możemy iść tutaj znacznie dalej np.:
- zapisywanie zdarzeń do bazy danych, umożliwiając użytkownikowi wpisanie dowolnego connection-string'a,
- wysyłanie zdarzeń poprzez WebService do zdalnego rejestru (chyba bardzo dobre rozwiązanie dla aplikacji, by wykorzystać połączenie sieciowe do przesłania informacji o problemach do zdalnego serwera należącego do autorów oprogramowania),
- wysyłanie informacji bezpośrednio w pakietach TCP lub UDP (przykłady można znaleźć w wortalu CodeProject: TraceTool, UDP Trace Listener),
- tworzenie serii plików z logami (np. log z każdego dnia może być w oddzielnym pliku)
- i wiele innych - w zależności od naszej wyobraźni.
Co trzeba zrobić, aby wykorzystać własny Listener?? Oczywiście stworzyć klasę dziedziczącą, po TraceListener, a następnie zaimplementować konieczne funkcje (m.in. Write, TraceEvent i inne...). Teraz wystarczy już użyć stworzony Listener w naszym programie (np. w pliku konfiguracyjnym).
W tym miejscu dotarliśmy już do końca tego artykułu. Mam nadzieję, że udało mi się przybliżyć możliwości śledzenia i logowania zdarzeń na platformie .NET. Być może w kolejnym artykule dotyczącym tej tematyki rozszerzę zagadnienie konstruowania własnego TraceListener'a.
Witam,
OdpowiedzUsuńBardzo fajnie to opisałeś, bardzo przydatne,
wielkie dzięki.
Przy wyborze agencji reklamowej, wiele osób zwraca uwagę na zakres usług oferowanych przez firmę. Na stronie https://haiku.com.pl/ znajdują się informacje na temat różnych usług, takich jak projektowanie graficzne, marketing cyfrowy oraz zarządzanie mediami społecznościowymi. Dostęp do tych danych może pomóc w zdecydowaniu, czy agencja spełnia konkretne potrzeby związane z kampanią reklamową.
OdpowiedzUsuń