NLog vs log4net

zarówno NLog, jak i log4net to dwie bardzo popularne opcje przy wyborze frameworka logowania dla aplikacji. NET. W tym poście dowiesz się wszystkiego o frameworkach i różnicach. Dla tych z was, którzy nie znają jednego lub obu frameworków, zacznijmy od kilku słów o każdym frameworku.

log4net

prawdopodobnie najstarszy framework logowania w bloku, log4net istnieje prawie od czasu wprowadzenia. NET. log4net był pierwotnie wewnętrznym portem Apache log4j opracowanym przez Neoworks Limited w 2001 roku. Projekt szybko przeniósł się do SourceForge (GitHub z 2001 roku) i został wydany na licencji Apache. Od tego czasu log4net jest jedną z najpopularniejszych opcji w świecie.NET do dodawania logowania do aplikacji.

log4net działa z koncepcją appenderów, gdzie wiadomości dziennika mogą być kierowane do różnych magazynów danych. Wiele appenderów zostało zaimplementowanych w ciągu lat, takich jak logowanie do systemu plików, SQL Server, punkty końcowe HTTP, a nawet bazy danych NoSQL, jednak będąc nieustrukturyzowanymi wiadomościami tekstowymi, log4net i NoSQL nie idą w parze.

NLog

podczas gdy log4net szybko stał się domyślnym wyborem, zaczęły pojawiać się alternatywy. Prawdopodobnie pierwszym prawdziwym konkurentem dominacji log4net był NLog. Pierwotnie opracowany przez Jarka Kowalskiego i z pull requestami od prawie 100 osób, NLog jest świetną alternatywą. Podczas gdy log4net prawie stał w miejscu od 2006 roku, NLog po prostu kontynuował. Podczas gdy Jarek zdawał się wyciągać wtyczkę, gdy zaczynał pracę w Google, Społeczność zdawała się narastać, a nowe wydania wciąż płyną.

podobnie jak log4net, NLog zawiera wiele celów dziennika i jest w stanie rejestrować Wiadomości do różnych magazynów danych.

Konfiguracja

wszystkie frameworki logowania wymagają jakiejś konfiguracji, aby framework wiedział, co i gdzie ma logować.

log4net

log4net jest konfigurowany za pośrednictwem aplikacji.plik konfiguracyjny lub dedykowany log4net.konfiguracja:

NLog

NLog może być skonfigurowany zarówno przez XML, jak i C#. Większość ludzi używa XML, ponieważ istnieje od samego początku i ponieważ API oparte na C# nie jest tak ładne jak nowsze frameworki, takie jak Serilog.

rejestrowanie wiadomości

jeśli chodzi o rejestrowanie wiadomości z Twojej aplikacji, log4net i NLog działają dość podobnie.

log4net

komunikaty dziennika są zapisywane przy użyciu interfejsu API log4net:

var log = LogManager.GetLogger(typeof(Bar));log.Debug("Hello World");

dodatkowe informacje dziennika mogą być dołączone do wiadomości dziennika przy użyciu różnych opcji kontekstowych:

chociaż informacje można osadzać bezpośrednio w komunikatach dziennika za pomocą log4net, logowanie semantyczne nie jest obsługiwane.

NLog

NLog zapewnia API podobne do log4net do logowania Wiadomości do skonfigurowanego zestawu celów:

var logger = NLog.LogManager.GetCurrentClassLogger();logger.Debug("Hello World");

można również dołączyć dodatkowe właściwości:

var msg = new LogEventInfo(LogLevel.Debug, "", "Hello World");msg.Properties.Add("Application", "MyCoolApp");logger.Debug(msg);

najnowsza wersja NLog obsługuje logowanie semantyczne. Aby dodać semantyczne do komunikatów dziennika, użyj składni nawiasów klamrowych:

logger.Info("Order {orderid} created for {user}", 42, "Kenny");

wnioski

wyłonienie zwycięzcy nie jest celem tego postu. Obie ramy rejestrowania mają swoje zalety i wady.

log4net

zalety