NLog vs log4net

Oba NLog a log4net jsou dva velmi populární volby, při výběru protokolování rámec .NET aplikací. V tomto příspěvku se dozvíte vše o rámcích i rozdílech. Pro ty z vás, kteří neznají jeden nebo oba rámce, začněme několika slovy o každém rámci.

log4net

Pravděpodobně nejstarší protokolování rámec, na bloku, log4net existuje docela hodně od té doby .NET byl představen. log4net byl původně interní port Apache log4j vyvinutý společností Neoworks Limited v roce 2001. Projekt se rychle přesunul do Sourceforge (GitHub z roku 2001) a byl propuštěn pod licencí Apache. Od té doby je log4net jednou z nejpopulárnějších možností ve světě. Net pro přidávání protokolování do aplikací.

log4net pracuje s konceptem appenders, kde zprávy protokolu mohou být směrovány do různých datových úložišť. Hodně appenders byly realizovány v průběhu let, jako je přihlášení k systému souborů, SQL Server, HTTP koncové body, a dokonce i NoSQL databází, nicméně, že nestrukturované textové zprávy, log4net a NoSQL nejde zrovna ruku v ruce.

NLog

zatímco se log4net rychle stal výchozí volbou, začaly se objevovat alternativy. Pravděpodobně prvním skutečným konkurentem dominance log4net byl NLog. NLog, původně vyvinutý Jarkem Kowalskim a s požadavky na pull od téměř 100 lidí, je skvělou alternativou. Zatímco log4net do značné míry stál od 2006, NLog prostě pokračoval. Zatímco se zdálo, že Jarek při spuštění na Googlu vytáhl zástrčku, zdálo se, že komunita zintenzivnila a nová vydání stále proudí.

stejně jako log4net, NLog obsahuje více cílů protokolu a je schopen protokolovat zprávy do různých datových úložišť.

konfigurace

všechny logovací rámce potřebují nějakou konfiguraci, aby rámec věděl, co se má přihlásit a kam.

log4net

log4net je konfigurován prostřednictvím aplikace.konfigurační soubor nebo vyhrazený log4net.config:

NLog

NLog lze konfigurovat pomocí XML I C#. Většina lidí používá XML, protože to tam bylo od začátku a protože API založené na C# není tak pěkné jako novější rámce, jako je Serilog.

Protokolování Zpráv

Pokud jde o logování zpráv z vaší aplikace, NLog log4net a funguje dost podobně.

log4net

zprávy Protokolu jsou zapsány pomocí log4net API:

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

Další informace o protokolu mohou být připojeny k protokolu zprávy pomocí řady různých kontextové volby:

i když můžete vkládat informace přímo do zpráv protokolu pomocí log4net, sémantické protokolování není podporováno.

NLog

NLog poskytuje API podobné log4net pro protokolování zpráv, aby se konfigurované nastavení cílů:

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

Další vlastností může být připojena jako dobře:

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

aktuální verze NLog podporuje sémantické přihlášení. Přidat sémantické zprávy záznamu, použijte složená závorka syntaxe:

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

Závěr

vybrat vítěze není cílem tohoto příspěvku. Oba logovací rámce mají své výhody a nevýhody.

log4net

výhody