Jak wykonać logowanie w C# za pomocą Log4net
W przypadku awarii aplikacji lub serwera dziennik upraszcza rozwiązywanie problemów
Obrazy Cavan/Iconica/Getty Images
Kiedy piszeszkod komputerowyw C# dobrym pomysłem jest dołączenie kodu rejestrowania. W ten sposób, gdy coś pójdzie nie tak, wiesz, od czego zacząć. Świat Javy robi to od lat. W tym celu można wykorzystać log4net. Jest to część Apache log4j 2, popularnej platformy logowania typu open source.
To nie jest jedyna platforma rejestrowania .NET; jest wiele. Jednakże Apache Nazwa jest zaufana, a oryginalna platforma rejestrowania Java istnieje od ponad 15 lat.
Dlaczego warto korzystać z platformy logowania Log4net?
Kiedy aplikacja lub serwer ulega awarii, zastanawiasz się, dlaczego. Czy była to awaria sprzętu, złośliwe oprogramowanie, może atak typu Denial of Service, czy jakaś dziwna kombinacja kluczy, która pozwala ominąć wszystkie testy kodu? Po prostu nie wiesz.
Musisz dowiedzieć się, dlaczego doszło do awarii, aby można ją było naprawić. Po włączeniu rejestrowania możesz zobaczyć, dlaczego tak się stało.
Pierwsze kroki
Pobierz plik log4net ze strony internetowej Apache log4net. Sprawdź integralność pobranych plików za pomocą sygnatury PGP lub sum kontrolnych MD5. Sumy kontrolne nie są tak silnymi wskaźnikami jak podpis PGP.
Korzystanie z Log4net
Log4net obsługuje siedem poziomów logowania od żadnego do wszystkich z rosnącym priorytetem. To są:
- WYŁĄCZONY
- FATALNY
- BŁĄD
- OSTRZEGAĆ
- INFORMACJE
- ODPLUSKWIĆ
- WSZYSTKO
Wyższe poziomy obejmują wszystkie niższe. Podczas debugowania używamODPLUSKWIĆpokazuje wszystko, ale w produkcji możesz być zainteresowany tylko FATAL. Tego wyboru można dokonać programowo na poziomie komponentu lub w pliku XML Config.
Rejestratory i dodatki
Aby zapewnić elastyczność, log4net używa rejestratorów, programów dołączających i układów. Rejestrator to obiekt, który kontroluje rejestrowanie i jest implementacją interfejsu ILog, który określa pięć metod logicznych: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled i IsFatalEnabled. Określa również pięć metod — Debug, Info, Warn, Error i Fatal — wraz z przeciążeniami i pięcioma wersjami sformatowanych ciągów. Możesz zobaczyć pełny interfejs ILog w podręczniku online log4net.
Loggerom przypisywany jest jeden z poziomów, ale nie WSZYSTKIE lub WYŁĄCZONE, tylko pozostałe pięć.
Programy dołączające kontrolują, gdzie idzie rejestrowanie. Może to być baza danych, bufor w pamięci, konsola, zdalny host, plik tekstowy z kroczącymi dziennikami, dziennik zdarzeń systemu Windows, a nawet wiadomość e-mail przez SMTP. W sumie są 22 wypustki i można je łączyć, dzięki czemu masz duży wybór. Dodatki są dołączane (stąd nazwa) do rejestratora.
Programy dołączające filtrują zdarzenia, dopasowując podciągi, poziom zdarzenia, zakres poziomów i początek nazwy rejestratora.
Układy
Wreszcie istnieje siedem układów, które można powiązać z dołączaczem. Kontrolują one sposób rejestrowania wiadomości o zdarzeniu i mogą zawierać tekst wyjątku, układy sygnatur czasowych orazElementy XML.
Konfiguracja z XML
Chociaż konfigurację można wykonać programowo, można to również zrobić za pomocą plików XML Config. Dlaczego wolisz pliki konfiguracyjne niż zmiany kodu? To proste, o wiele łatwiej jest, gdy pracownik pomocy technicznej dokona zmiany w pliku konfiguracyjnym niż programista, który zmieni kod, testuje i ponownie wdraża nową wersję. Tak więc pliki konfiguracyjne są drogą do zrobienia. Najprostszą możliwą ścieżką jest dodanie App.config do projektu, jak pokazano w poniższym przykładzie:
|_+_|
Dokumentacja online log4net wyjaśnia wszystkie pola pliku konfiguracyjnego. Po skonfigurowaniu App.config dodaj za pomocą log4net i tej linii:
|_+_|
Dodatkowo rzeczywisty logger musi być pobrany poprzez wywołanie LogManager.GetLogger(...). GetLogger jest zwykle wywoływany z typeof(klasą), w którym jest używany, ale to wywołanie funkcji również pobiera to:
|_+_|
Ten przykład pokazuje obydwa z jednym komentarzem, więc możesz wybrać.
|_+_|