nlog vs log4net

sekä nlog että log4net ovat kaksi erittäin suosittua vaihtoehtoa. NET-sovellusten kirjauskehystä valittaessa. Tässä viestissä, opit kaiken sekä puitteet ja erot. Niille teistä, jotka eivät tiedä yhtä tai molempia kehyksiä, aloitetaan muutamalla sanalla jokaisesta kehyksestä.

log4net

luultavasti lohkon vanhin lokikehys, log4net on ollut olemassa melko paljon siitä lähtien, kun.Net otettiin käyttöön. log4net oli alun perin neoworks Limitedin vuonna 2001 kehittämä sisäinen Apache log4j-portti. Projekti siirtyi nopeasti Sourceforgelle (vuoden 2001 GitHub) ja julkaistiin Apache-lisenssillä. Siitä lähtien log4net on ollut yksi suosituimmista valinnoista. Net-maailmassa kirjautumisten lisäämiseksi sovelluksiin.

log4net toimii appenders-konseptin kanssa, jossa lokiviestit voidaan reitittää eri tietovarastoihin. Paljon appenders on toteutettu vuosien aikana, kuten kirjautuminen tiedostojärjestelmään, SQL Server, HTTP päätepisteet, ja jopa NoSQL-tietokannat, kuitenkin jäsentymätön tekstiviestejä, log4net ja NoSQL eivät juuri kulje käsi kädessä.

NLog

log4netistä tuli nopeasti oletusvalinta, mutta vaihtoehtoja alkoi ilmaantua. Todennäköisesti ensimmäinen todellinen kilpailija log4netin dominanssille oli NLog. Alun perin Jarek Kowalskin kehittämä ja lähes sadan ihmisen pull-pyynnöillä varustettu NLog on loistava vaihtoehto. Vaikka log4net melko paljon seisoi paikallaan vuodesta 2006, NLog vain jatkoi. Siinä missä Jarek näytti vetävän töpselin irti Googlella aloittaessaan, yhteisö tuntui vahvistuvan ja uusia julkaisuja virtaa edelleen.

log4netin tavoin NLog sisältää useita lokikohteita ja pystyy kirjaamaan viestejä eri tietovarastoihin.

konfiguraatio

kaikki kirjauskehykset tarvitsevat jonkinlaisen konfiguraation, jotta kehys tietää, mitä kirjata ja minne.

log4net

log4net on määritetty sovelluksen kautta.asetustiedosto tai oma log4net.config:

NLog

NLog voidaan määrittää sekä XML: n että C#: n kautta. Useimmat ihmiset käyttävät XML, koska se on ollut siellä alusta asti ja koska C# – pohjainen API ei ole niin mukavaa kuin uudemmat puitteet, kuten Serilog.

Kirjausviestit

kun on kyse viestien kirjaamisesta sovelluksesta, log4net ja nlog toimivat melko samanlaisina.

log4net

lokiviestit kirjoitetaan log4netin API: n avulla:

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

Lokiviestiin voidaan liittää lisää lokitietoja käyttämällä useita eri kontekstivaihtoehtoja:

vaikka tietoja voi upottaa suoraan lokiviesteihin log4netin avulla, semanttista kirjausta ei tueta.

NLog

nlog tarjoaa log4netin kaltaisen API: n viestien kirjaamiseen asetettuihin tavoitteisiin:

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

lisäominaisuuksia voidaan liittää myös:

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

nlogin tuore versio tukee semanttista kirjausta. Jos haluat lisätä semanttisia lokiviestejä, käytä curly brace-syntaksia:

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

johtopäätös

voittajan valitseminen ei ole tämän postauksen tavoite. Molemmissa hakkuukehyksissä on omat hyötynsä ja haittansa.

log4net

edut