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