Benchmarking 5 populære. NET logging biblioteker

Flere logging rammeverk lover. NET kodere en» fem minutters oppsett og starte logging » løsning for sine prosjekter. Vi bestemte oss for å teste disse rammene for å identifisere hastighet og bekvemmelighet mellom dem. NET kodere vet at De kan skrive hendelser Til Windows Event Viewer uten å implementere noen ekstra biblioteker. Dette er den ultimate bekvemmelighet og pålitelighet. Du kan for eksempel skrive hendelser til en loggfil for å dele med andre avdelinger eller kjøre analytics mot en gruppe logger.

Hvilke Loggrammer Vi Testet

vi bestemte oss for å teste de fem beste loggrammene på markedet:

  • Log4net
  • ELMAH
  • NLog
  • Microsoft Enterprise Library
  • NSpring

hvis DU noen gang har jobbet med enterprise logging FOR. NET, gjenkjenner du sannsynligvis ett eller to av disse bibliotekene. FOR denne testen skrev VI feilhendelser til filer for hver rammetest, SELV OM ELMAH automatisk skriver til filer med mindre du spesifikt forteller DET å logge PÅ SQL. ELMAH SQL integrasjon gjør det til en av våre personlige favoritter, men vi ønsket å holde spillefeltet nivå og bare bruke lokale filer.

Vårt Testmiljø

vi ønsket å gi disse referansetestene et miljø som er representativt for den virkelige verden, så vi testet dem på en server som var vert for tre webapplikasjoner. Miljøet er også vert FOR SQL Server og MySQL for de tre programmene. For å simulere CPU-belastning, satte vi fortsatt opp en separat gjenget prosess som genererte primtall mens testene ble kjørt og tidsbestemt. Arbeidsmiljøet står for høyere tall enn andre benchmarks, men vi finner det er mer naturtro enn enkel primtall generasjon.

vår produksjonsserver er En Windows 2008-server MED 8 GB RAM og En I5 Intel-prosessor med fire kjerner, en kjerne for hver tråd. Programmene ble opprettet ved Hjelp Av Visual Studio 2012. Log4net, Nlog, Microsoft Enterprise Library og NSpring ble alle benchmarked på konsollapplikasjoner. ELMAH er en web logger, så dette programmet ble kjørt mot en webapplikasjon I. NET 4.5. Vi brukte Også C# som det primære språkrammen.

Vi gjorde ikke mange konfigurasjoner til rammene selv. Vi valgte biblioteker tilgjengelig I NuGet, slik at utviklere ikke trengte å laste ned bestemte biblioteker og integrere Dller og tredjepartsløsninger i hovedprosjektet.

prosjektet besto av bare de nødvendige bibliotekene FOR. NET for å kompilere og utføre koden. Koden inneholdt en sløyfe som itererte gjennom 100.000 skrive feilsøkingshendelser for hvert rammeverk. En egen metode håndtert primtall tråden.

vi kjørte tre tester på hvert rammeverk og brukte gjennomsnittlige resultater.

Våre Testresultater

ta Først en titt på grafen nedenfor, og du vil se den klare vinneren.

netchart

NLog var den raskeste, og vi må si at Det var en av de mest praktiske loggingsmetodene. NLog virkelig stå ved sin påstand om at du kan begynne å logge hendelser i løpet av minutter. Å få NLog til å jobbe med søknaden tok to linjer med kode: en linje for å instantiere hovedloggerklassen, og den andre for å logge hendelsene. Ikke bare var det enkelt å sette opp, men det tok bare ca 9 sekunder å fullføre 100.000 iterasjoner.

Log4net var like praktisk, men det tapte når det gjelder ytelse. Vi prøvde både feilsøking og feilhendelser med log4net, og feilsøkingslogging var faktisk raskere enn standardfeilhendelser. Sammenlignet med sine konkurrenter, log4net kunne bruke noen ytelse tweaking fra utviklerne spesielt for bedriftsapplikasjoner. Det var like praktisk Som NLog, men det kunne ikke konkurrere på ytelse.

Vår tredje favoritt Er NSpring. NSpring var lett å sette opp, men det krevde mye mer kode for å jobbe med det. Du må åpne Og lukke nspring logger hendelser, som du ikke trenger å gjøre med de andre. Noen få kodelinjer i et enkelt program er ikke for mye av et problem, men åpning og lukking av loggervariabler kan være kjedelig for bedriftsapplikasjoner.

av rammene vi testet i et konsollprogram, var det innfødte Microsoft Enterprise Library vår minst favoritt. Den har den nest raskeste tiden, men det var ekstremt ubeleilig. Microsoft har nylig endret måten rammeverket fungerer fra versjon 5 til 6. I versjon 5.0 kunne koderen lage et statisk anrop for å logge funksjoner, men vi møtte mange hindringer for å få EntLib til å jobbe med versjon 6.0. Oppsettstiden For EntLib nedgraderer dette biblioteket selv om det var den nest raskeste.

det endelige rammeverket ER ELMAH. ELMAH var opprinnelig vår favoritt før vi testet NLog. ELMAH er en web logger, så det fungerer litt annerledes enn de andre. Den skriver til EN XML-fil som standard, noe som også kan forklare noe av sitt lag.

Konklusjon

For tunge applikasjoner som krever fillogging og hastighet, Var NLog klart vinneren. NLog har også god støtte fra fellesskapet med integrasjoner for logghåndteringsløsninger som Loggly. Hvis NLog av en eller annen grunn Ikke er ditt valg, gå med NSpring i stedet. Disse to rammene er klart det raskeste. Vi ville ha valgt log4net som vårt toppvalg hadde det ikke vært for den langsomme ytelsen. Det var en av de enkleste å sette opp.

Alle disse rammene er tilgjengelige I NuGet, så du kan prøve dem selv.

Legg igjen en kommentar

Din e-postadresse vil ikke bli publisert.