nlog vs log4net

atât nlog, cât și log4net sunt două alegeri foarte populare, atunci când selectați un cadru de înregistrare pentru aplicațiile.Net. În acest post, veți afla totul despre ambele cadre și diferențele. Pentru aceia dintre voi care nu cunosc unul sau ambele cadre, să începem cu câteva cuvinte despre fiecare cadru.

log4net

probabil cel mai vechi cadru de logare de pe bloc, log4net a existat destul de mult de când a fost introdus.net. log4net a fost inițial un port intern Apache log4j dezvoltat de Neoworks Limited în 2001. Proiectul s-a mutat rapid la Sourceforge (GitHub din 2001) și a fost lansat sub licența Apache. Din acel moment, log4net a fost una dintre cele mai populare alegeri din lume.net pentru adăugarea de logare la aplicații.

log4net funcționează cu conceptul de appenders, unde mesajele de jurnal pot fi direcționate către diferite magazine de date. O mulțime de aplicații au fost implementate de-a lungul anilor, cum ar fi conectarea la sistemul de fișiere, SQL Server, puncte finale HTTP și chiar baze de date NoSQL, cu toate acestea fiind mesaje text nestructurate, log4net și NoSQL nu merg exact mână în mână.

NLog

în timp ce log4net a devenit rapid alegerea implicită, alternativele au început să apară. Probabil primul concurent real pentru dominația log4net a fost NLog. Dezvoltat inițial de Jarek Kowalski și cu cereri de tragere de la aproape 100 de persoane, NLog este o alternativă excelentă. În timp ce log4net a stat destul de mult din 2006, NLog a continuat să meargă. În timp ce Jarek părea să tragă ștecherul la pornirea de la Google, Comunitatea părea să se intensifice și noile versiuni continuă să curgă.

ca log4net, NLog conține mai multe obiective jurnal și este capabil să vă conectați mesaje la diferite magazine de date.

configurare

toate cadrele de logare are nevoie de un fel de configurare, pentru ca Cadrul să știe ce să vă conectați și în cazul în care.

log4net

log4net este configurat prin intermediul aplicației.fișier de configurare sau un log4net dedicat.config:

NLog

NLog poate fi configurat atât prin XML și C#. Majoritatea oamenilor folosesc XML, deoarece a fost acolo de la început și de când API-ul bazat pe C# nu este la fel de frumos ca cadrele mai noi, cum ar fi Serilog.

Mesaje de logare

când vine vorba de logarea mesajelor din aplicația dvs., log4net și nlog funcționează destul de similar.

log4net

mesajele jurnal sunt scrise folosind API-ul log4net:

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

informații suplimentare jurnal poate fi atașat la un mesaj jurnal utilizând o serie de opțiuni contextuale diferite:

în timp ce puteți încorpora informații direct în mesajele de jurnal cu log4net, logarea semantică nu este acceptată.

NLog

nlog oferă un API similar cu log4net pentru mesajele de logare la setul configurat de obiective:

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

proprietăți suplimentare pot fi atașate, de asemenea:

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

versiunea recentă a NLog acceptă logarea semantică. Pentru a adăuga semantic la mesajele de jurnal, utilizați sintaxa curly brace:

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

concluzie

alegerea unui câștigător nu este scopul acestui post. Ambele cadre de logare are propriile sale beneficii și dezavantaje.

log4net

avantaje