Kuidas teha sisselogimist C # Log4netiga

Kui sa kirjutad arvutikood C #-s on hea mõte lisada logimiskood. Nii teate, kui midagi valesti läheb, kust otsida. Java maailm on seda juba aastaid teinud. Sel eesmärgil saate kasutada log4neti. See on osa populaarsest avatud lähtekoodiga logimisraamistikust Apache log4j 2.

See pole ainus .NET-logimisraamistik; seal on palju. Siiski Apache nimi on usaldusväärne ja Java algne logimisraamistik on olnud olemas juba enam kui 15 aastat.

Miks kasutada Log4neti logimisraamistikku?

Kui mõni rakendus või server jookseb kokku, jääb teil küsimus, miks. Kas see oli riistvara rike, pahavara, võib-olla teenuse keelamise rünnak või mõni veider klahvikombinatsioon, mis suudab kõikidest teie koodikontrollidest mööda minna? Sa lihtsalt ei tea.

Peate välja selgitama, miks krahh toimus, et seda saaks parandada. Kui sisselogimine on lubatud, näete võib-olla, miks see juhtus.

Alustamine

Laadige log4neti fail alla Apache log4neti veebisaidilt. Kontrollige allalaaditud failide terviklikkust, kasutades PGP allkirja või MD5 kontrollsummasid. Kontrollsummad pole nii tugevad näitajad kui PGP allkiri.

instagram viewer

Log4neti kasutamine

Log4net toetab prioriteedi suurendamisel seitset logimistaset üheltki mitte ühelegi. Need on:

  1. VÄLJAS
  2. TAPPEV
  3. VIGA
  4. HOIATUS!
  5. INFO
  6. SÕLMIGA
  7. KÕIK

Kõrgemad tasemed hõlmavad kõiki madalamaid. Silumisel kasutage SÕLMIGA näitab kõiki, kuid tootmisel võiks teid huvitada ainult FATAL. Selle valiku saab teha komponendi tasemel programmiliselt või XML Config-failis.

Metsaraiejad ja lisandid

Paindlikkuse tagamiseks kasutab log4net logijaid, manuseid ja paigutusi. Logger on logimist kontrolliv objekt ja on ILog-liidese rakendus, mis määratleb viis tõeväärtusmeetodit: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled ja IsFatalEnabled. Samuti täpsustatakse selles viis meetodit - silumine, teave, hoiatus, tõrge ja fataal koos ülekoormustega ja viis vormindatud stringi versiooni. ILogi täielikku liidest näete log4neti veebijuhendis.

Logijatele on määratud üks tase, kuid mitte KÕIK ega VÄLJAS, ainult ülejäänud viis.

Lisad kontrollivad, kuhu metsaraie läheb. See võib olla andmebaasi, mälusisesesse puhverlausesse, konsooli, serverisse, kaustadena logifailide tekstifaili, Windowsi sündmuste logi või isegi SMTP kaudu e-postiga. Kokku on 22 manustajat ja neid saab kombineerida, nii et teil on palju valikuid. Logijale on lisatud lisad (sellest ka nimi).

Lisad filtreerivad sündmusi, sobitades alamstringid, sündmuse taseme, tasemevahemiku ja logija nime alguse.

Paigutused

Lõpuks on seitse paigutust, mida saab seostada lisandiga. Need kontrollivad sündmuse sõnumi logimist ja võivad sisaldada erandi teksti, ajatempli paigutusi ja XML-elemendid.

Seadistamine XML-iga

Ehkki seadistamist saab teha programmiliselt, saab seda teha ka XML Config-failidega. Miks eelistaksite konfiguratsioonifaile koodimuudatuste asemel? Lihtne, see on palju lihtsam, kui tugimees on konfiguratsioonifaili muutmas, kui on vaja programmeerijat koodi muutmiseks, uue versiooni testimiseks ja ümberpaigutamiseks. Nii et konfiguratsioonifailid on tee. Lihtsaim võimalik viis on lisada oma projektile App.config, nagu on näidatud allolevas näites:

1.0utf-8





















Log4neti veebidokumentatsioon selgitab kõiki konfiguratsioonifaili välju. Olles seadistanud App.config, lisage log4neti abil ja see rida:

[koost: log4net. Seadista XmlConfigurator (Vaata = tõene)]

Lisaks tuleb tegelik logija tuua tagasi kõnega LogManagerile. GetLogger (...). GetLoggerit kutsutakse tavaliselt selle tüübiga (klass), milles seda kasutatakse, kuid see funktsioonikõne tõmbab ka järgmist:

Süsteem. Peegeldus. MethodBase. GetCurrentMethod ()

See näide näitab mõlemat sisse ühe kommentaariga, nii et saate valida.

log4neti kasutamine;
[koost: log4net. Seadista XmlConfigurator (Vaata = tõene)]
nimeruumi gvmake
{
klassi programm
{
privaatne staatiline readonly ILog log = LogManager. GetLogger (süsteem. Peegeldus. MethodBase. GetCurrentMethod
() .DeclaringType);
// privaatne staatiline readonly ILog log = LogManager. GetLogger (typeof (Program));
static void Main (string [] args)
{
logi. Silumine ("Rakenduse käivitamine");
}
}
}