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