Jak pracować z log4net w C #

Podczas pracy nad aplikacjami często możesz chcieć rejestrować dane aplikacji, które mogą obejmować sekwencję zdarzeń w aplikacji, działania użytkownika, a nawet błędy, gdy występują. Istnieje wiele platform rejestrowania, których można użyć, ale log4net jest zdecydowanie jedną z najpopularniejszych platform rejestrowania do użytku z aplikacjami utworzonymi lub opracowanymi w .NET. Jest to biblioteka typu open source (port popularnej biblioteki log4j open source dla języka Java), której można używać do rejestrowania danych aplikacji w różnych miejscach docelowych dziennika w .NET.

Instalowanie log4net 

Najłatwiejszym i najszybszym sposobem rozpoczęcia korzystania z log4net jest zainstalowanie go za pośrednictwem Menedżera pakietów NuGet. Zakładając, że utworzyłeś projekt aplikacji konsoli w programie Visual Studio, możesz zainstalować log4net za pośrednictwem Menedżera NuGet, wykonując następujące kroki.

  1. W oknie „Solution Explorer” wybierz i kliknij prawym przyciskiem myszy projekt
  2. Kliknij „Zarządzaj pakietami NuGet ...”
  3. Kliknij „Online”, a następnie wpisz log4net w polu wyszukiwania
  4. Wybierz pakiet log4net, który chcesz zainstalować
  5. Kliknij „Instaluj”, aby rozpocząć proces instalacji

W chwili pisania tego tekstu najnowszą stabilną wersją log4net jest 2.0.5. Po zainstalowaniu log4net za pośrednictwem Menedżera pakietów NuGet można zaobserwować zestaw log4net dodany jako odwołanie do projektu.

Konfigurowanie log4net

Teraz, gdy pakiet log4net został pomyślnie zainstalowany, dodaj następujący wiersz do pliku AssemblyInfo.cs w folderze Właściwości projektu. Jeśli nie zostanie to określone, ustawienia konfiguracyjne nie będą brane pod uwagę.

[zespół: log4net.Config.XmlConfigurator (ConfigFile = "Log4Net.config", Watch = true)]

Możesz też wspomnieć o tym samym w pliku app.config lub web.config.

[zespół: log4net.Config.XmlConfigurator (Watch = true)]

Jeśli metadane konfiguracji log4net znajdują się w jakimś innym pliku (tj. Innym niż pliki web.config lub app.config), możesz zamiast tego określić następujące.

[assembly: log4net.Config.XmlConfigurator (ConfigFile = "log4net.config", Watch = true)]

Następnym krokiem jest określenie niezbędnych szczegółów konfiguracji dla log4net w pliku app.config lub web.config w Twojej aplikacji. Zakładając, że używasz projektu aplikacji konsoli, dodaj sekcję konfiguracji o nazwie „log4net” w pliku app.config, jak pokazano poniżej.

Teraz dodaj sekcję „” po elemencie w pliku app.config. Następnie w sekcji „” umieść szczegóły konfiguracji, tak jak pokazano we fragmencie kodu podanym poniżej.

To wszystko, co musisz zrobić, aby skonfigurować log4net. Przyjrzyjmy się teraz, jak możemy go użyć w naszym kodzie. Element służy do określenia nazwy i typu używanego programu rejestrującego. W tym przykładzie używamy programu dołączającego plik toczny. Jednak dostępnych jest wiele innych typów programów dołączających, np. AdoNetAppender, AspNetTraceAppender, ConsoleAppender, itd. Oto pełna lista i jak skonfigurować inne programy dołączające.

Korzystanie z log4net 

W swojej klasie utwórz odwołanie do ILog, wywołując metodę statyczną GetLogger klasy LogManager, jak pokazano we fragmencie kodu podanym poniżej.

prywatny statyczny tylko do odczytu log4net.ILog log = 

log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

Możesz teraz używać instancji o nazwie log do rejestrowania danych do skonfigurowanych celów. Poniższy fragment kodu ilustruje, jak można teraz wykorzystać wystąpienie dziennika do rejestrowania danych.

log.Debug ("To jest komunikat debugowania");

log.Info ("To jest wiadomość informacyjna");

log.Warn ("To jest komunikat ostrzegawczy");

log.Error ("To jest komunikat o błędzie");

log.Fatal ("To jest wiadomość krytyczna");

Oto pełna lista kodu, która pokazuje, jak zarejestrować komunikat o wyjątku w pliku tekstowym za pomocą log4net.

Program zajęć

   {

       statyczny tylko do odczytu log4net.ILog log =

       log4net.LogManager.GetLogger

(System.Reflection.MethodBase.GetCurrentMethod (). DeclaringType);

       static void Main (string [] args)

       {

           próbować

           {

               zgłoś nowy wyjątek ("To jest wiadomość testowa ...");

           }

           catch (wyjątek z wyjątkiem)

           {

               log.Error (np. wiadomość);

           }          

           Console.Read ();

       }

   }

Po wykonaniu powyższego programu zostanie utworzony plik tekstowy o nazwie .log, a komunikat wyjątku określony za pomocą zostanie zarejestrowany wraz ze znacznikiem czasu. Zauważ, że możesz również używać log4net programowo, tj. Konfigurowanie log4net programowo nie wymaga konfiguracji, o której mówiliśmy wcześniej.