Kako se prijaviti u C # pomoću Log4neta

Kad pišete računalni kod u C #, dobra je ideja uključiti kôd za prijavu. Na taj način, kad nešto pođe po zlu, znate gdje početi tražiti. Java svijet to radi već godinama. U tu svrhu možete koristiti log4net. Dio je Apache log4j 2, popularnog okvira za prijavu otvorenog koda.

Ovo nije jedini .NET okvir za prijavu; ima ih mnogo. Međutim apaš ime je pouzdano, a izvorni Java okvir za prijavu postoji više od 15 godina.

Zašto koristiti okvir za prijavu Log4net?

Kad se aplikacija ili poslužitelj sruše, zapitate se zašto. Je li to bio kvar hardvera, zlonamjerni softver, možda napad uskraćivanja usluge ili neka neobična kombinacija tipki koja uspije zaobići sve provjere koda? Jednostavno ne znate.

Morate otkriti zašto je došlo do pada, tako da se može ispraviti. Ako je omogućena prijava, možda ćete moći vidjeti zašto se to dogodilo.

Početak rada

Preuzmite datoteku log4net s web stranice Apache log4net. Provjerite integritet preuzetih datoteka pomoću PGP potpisa ili MD5 kontrolnih suma. Kontrolni zbrojevi nisu tako jaki pokazatelji kao PGP potpis.

instagram viewer

Korištenje Log4neta

U povećanju prioriteta Log4net podržava sedam razina logiranja od niti jedne do druge. Ovi su:

  1. OFF
  2. FATAL
  3. ERROR
  4. UPOZORITI
  5. INFO
  6. UKLANJANJE
  7. SVI

Viši nivoi uključuju sve niže. Pri uklanjanju pogrešaka, pomoću UKLANJANJE pokazuje sve, ali na produkciji bi vas mogao zanimati samo FATAL. Ovaj se izbor može izvršiti na razini komponente programsko ili u XML datoteci Config.

Sječači i dodaci

Za fleksibilnost, log4net koristi drvosječa, dodavanja i izgleda. Drvosječa je objekt koji kontrolira evidentiranje i predstavlja implementaciju ILog sučelja koje specificira pet logičkih metoda: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled i IsFatalEnabled. Također specificira pet metoda - Debug, Info, Warn, Error iFatal - zajedno s preopterećenjima i petom oblikovanom verzijom niza. Potpuno ILog sučelje možete vidjeti u mrežnom priručniku log4net.

Drvarima se dodjeljuje jedna od razina, ali ne SVE ili isključeno, samo ostalih pet.

Dodaci kontroliraju kamo ide prijava. Može se nalaziti u bazi podataka, u memorijskom međuspremniku, u konzolu, u udaljeni host, u tekstualnu datoteku s valjanim zapisnicima, u Windows Event Log ili čak putem e-pošte putem SMTP-a. Sve ih ima 22 priloga i mogu se kombinirati tako da imate puno izbora. Dodaci su dodani (otuda i naziv) drvosječu.

Dodaci filtriraju događaje podudaranjem podskupova, razine događaja, raspona razina i početka imena drvosječa.

izgledi

Konačno, postoji sedam izgleda koji se mogu povezati s žaliteljem. Oni kontroliraju način na koji se bilježi poruka događaja i mogu uključivati ​​tekst iznimke, raspored vremenskih oznaka i XML elementi.

Konfiguriranje s XML-om

Iako se konfiguriranje može obaviti programsko, može se izvesti i s XML Config datotekama. Zašto biste radije konfigurirali datoteke zbog promjena koda? Jednostavno, daleko je lakše ako momak za podršku izvrši promjenu u konfiguracijskoj datoteci nego što je potrebno da programer promijeni kod, testira i ponovo primijeni novu verziju. Dakle, konfiguracijske datoteke su put. Najjednostavniji mogući put je dodati App.config vašem projektu, kao što je prikazano u primjeru u nastavku:

1.0UTF-8





















Internetska dokumentacija log4net objašnjava sva polja konfiguracijske datoteke. Postavljajući App.config, dodajte koristeći log4net i ovu liniju:

[montaža: log4net. Config. XmlConfigurator (Watch = true)]

Osim toga, stvarni drvosječa mora se dohvatiti pozivom LogManager-u. GetLogger (...). GetLogger se obično zove s tipom type (klasa) u kojem se koristi, ali ovaj poziv funkcije također donosi i sljedeće:

Sustav. Odraz. MethodBase. GetCurrentMethod (). DeclaringType

Ovaj primjer prikazuje oboje s jednim komentiranim, tako da možete birati.

pomoću log4neta;
[montaža: log4net. Config. XmlConfigurator (Watch = true)]
imenski prostor gvmake
{
razredni program
{
privatni statički samo za čitanje ILog log = LogManager. GetLogger (Sustav. Odraz. MethodBase. GetCurrentMethod
() .DeclaringType);
// privatni statički čitanje samo ILog log = LogManager. GetLogger (typeof (Program));
statička praznina Main (string [] args)
{
log. Otklanjanje pogrešaka ("Pokretanje aplikacije");
}
}
}

instagram story viewer