Cum se face Logarea în C # cu Log4net

Când scrii cod computer în C #, este bine să includeți codul de înregistrare. În felul acesta, când ceva nu merge bine, știi unde să începi să cauți. Lumea Java face acest lucru de ani buni. Puteți utiliza log4net în acest scop. Face parte din Apache log4j 2, un cadru de logare open-source popular.

Acesta nu este singurul cadru de înregistrare .NET; sunt multi. Însă Apache numele este de încredere, iar cadrul original de înregistrare Java este de peste 15 ani.

De ce să folosiți un cadru de logare Log4net?

Când o aplicație sau un server se blochează, rămâneți să vă întrebați de ce. A fost o defecțiune hardware, malware, poate un atac de refuz de serviciu sau o combinație ciudată de chei care reușește să ocolească toate verificările codului? Doar nu știi.

Trebuie să aflați de ce a avut loc un accident, astfel încât să poată fi corectat. Cu activarea jurnalului, puteți vedea de ce s-a întâmplat.

Noțiuni de bază

Descărcați fișierul log4net de pe site-ul Apache log4net. Verificați integritatea fișierelor descărcate utilizând semnătura PGP sau sumele de verificare MD5. Sumele de control nu sunt indicatori la fel de puternici ca semnătura PGP.

instagram viewer

Folosind Log4net

Log4net acceptă șapte niveluri de logare de la unul la toate, având prioritate sporită. Acestea sunt:

  1. OFF
  2. FATAL
  3. EROARE
  4. A AVERTIZA
  5. INFO
  6. REMEDIERE
  7. TOATE

Nivelurile superioare includ toate cele inferioare. La depanare, folosind REMEDIERE arată toate, dar la producție, este posibil să fiți interesat doar de FATAL. Această alegere poate fi făcută la nivel de componentă programatic sau într-un fișier XML Config.

Jurnaliști și apendice

Pentru flexibilitate, log4net folosește jurnale, apendice și machete. Un logger este un obiect care controlează jurnalul și este o implementare a interfeței ILog, care specifică cinci metode booleane: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled și IsFatalEnabled. De asemenea, specifică cele cinci metode - Debug, Info, Warn, Error șiFatal - împreună cu supraîncărcări și cinci versiuni de șiruri formatate. Puteți vedea interfața completă ILog în manualul online log4net.

Jurnaliștilor li se atribuie unul dintre niveluri, dar nu ALL sau OFF, doar celelalte cinci.

Aparatorii controlează unde merge jurnalul. Poate fi într-o bază de date, într-un tampon de memorie, în consolă, într-o gazdă la distanță, într-un fișier text cu jurnalele de rulare, în jurnalul de evenimente Windows sau chiar în e-mail prin SMTP. În total, există 22 de apendenți și pot fi combinate astfel încât să aveți o mulțime de opțiuni. Apendicele sunt anexate (de aici și numele) la un jurnal.

Aplicatoarele filtrează evenimentele prin potrivirea subcringurilor, nivelului evenimentului, intervalului de niveluri și începutului numelui de înregistrare.

aspecte

În sfârșit, există șapte machete care pot fi asociate cu un Appender. Acestea controlează modul în care este înregistrat mesajul evenimentului și poate include text de excepție, machete de marcă de timp și Elemente XML.

Configurarea cu XML

Deși configurarea poate fi făcută programatic, se poate face și cu fișierele XML Config. De ce preferați fișierele de configurare decât modificările codului? Simplu, este mult mai ușor să ai un tip de asistență să facă o modificare la un fișier de configurare decât să obții un programator să schimbe codul, să testeze și să redea o nouă versiune. Deci fișierele de configurare sunt calea de urmat. Cea mai simplă cale posibilă este să adăugați App.config proiectul dvs., așa cum se arată în exemplul de mai jos:

1.0utf-8





















Documentația online log4net explică toate câmpurile fișierului de configurare. După configurarea App.config, adăugați folosind log4net și această linie:

[ansamblu: log4net. Config. XmlConfigurator (Urmărire = adevărat)]

În plus, înregistrarea efectivă trebuie să fie adusă cu un apel către LogManager. GetLogger (...). GetLogger este de obicei apelat cu tipof-ul (clasa) în care este folosit, dar această funcție apelează și că:

Sistem. Reflecţie. MethodBase. GetCurrentMethod (). DeclaringType

Acest exemplu arată ambele cu un comentat, astfel încât să puteți alege.

folosind log4net;
[ansamblu: log4net. Config. XmlConfigurator (Urmărire = adevărat)]
nume de spații gvmake
{
Programul clasei
{
private log static ILOG log = LogManager. GetLogger (sistem. Reflecţie. MethodBase. GetCurrentMethod
() .DeclaringType);
// privat static readonly ILog log = LogManager. GetLogger (tipof (Program));
static void Main (string [] args)
{
Buturuga. Debug („Pornirea aplicației”);
}
}
}

instagram story viewer