Kuinka kirjautua sisään C # Log4net -sovelluksella

Kun kirjoitat tietokonekoodi C # -kenttään on hyvä idea sisällyttää hakukoodi. Tällä tavoin kun jokin menee pieleen, tiedät mistä aloittaa etsiminen. Java-maailma on tehnyt tätä vuosia. Voit käyttää log4netiä tähän tarkoitukseen. Se on osa Apache log4j 2: ta, suosittua avoimen lähdekoodin kirjauskehystä.

Tämä ei ole ainoa .NET-kirjauskehys; on paljon. Kuitenkin Apache nimi on luotettava ja alkuperäinen Java-kirjauskehys on ollut olemassa jo yli 15 vuotta.

Miksi käyttää Log4net-kirjauskehystä?

Kun sovellus tai palvelin kaatuu, jätetään miettimään miksi. Oli se laitteistovika, haittaohjelma, ehkä palvelunestohyökkäys tai jokin pariton näppäinyhdistelmä, joka onnistuu ohittamaan kaikki kooditarkistuksenne? Et vain tiedä.

Sinun on selvitettävä, miksi kaatuu, jotta se voidaan korjata. Kun kirjaaminen on käytössä, saatat nähdä, miksi se tapahtui.

Päästä alkuun

Lataa log4net-tiedosto Apache log4net -sivustolta. Varmista ladattujen tiedostojen eheys PGP-allekirjoituksella tai MD5-tarkistussummilla. Tarkistussummat eivät ole yhtä vahvoja indikaattoreita kuin PGP-allekirjoitus.

instagram viewer

Log4netin käyttäminen

Log4net tukee seitsemää kirjautumistasoa kaikista kaikille prioriteettien lisäämisessä. Nämä ovat:

  1. VINOSSA
  2. FATAL
  3. VIRHE
  4. VAROITTAA
  5. TIEDOT
  6. DEBUG
  7. KAIKKI

Ylemmät tasot sisältävät kaikki alemmat. Kun virheenkorjausta käytetään DEBUG näyttää kaikki, mutta tuotannossa saatat olla kiinnostunut vain FATAL. Tämä valinta voidaan tehdä komponenttitasolla ohjelmallisesti tai XML Config-tiedostona.

Hakkurit ja liitteet

Joustavuuden vuoksi log4net käyttää loggereita, liitteitä ja asetteluja. Loggeri on objekti, joka hallitsee kirjaamista ja on ILog-rajapinnan toteutus, joka määrittelee viisi boolean-menetelmää: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled ja IsFatalEnabled. Se määrittelee myös viisi menetelmää - virheenkorjaus, tiedot, varoitus, virhe ja fatal - sekä ylikuormitukset ja viisi alustettua merkkijonoversiota. Voit nähdä koko ILog-käyttöliittymän log4netin online-oppaassa.

Loggereille annetaan yksi tasoista, mutta ei ALL tai OFF, vain muut viisi.

Liitteet hallitsevat, missä hakkuut menevät. Se voi olla tietokantaan, muistiin puskuriin, konsoliin, etäisäntään, tekstitiedostoon, jolla on vierityslokeja, Windows-tapahtumalokiin tai jopa sähköpostitse SMTP: n kautta. Kaikkia appeenejä on 22, ja niitä voidaan yhdistää, joten sinulla on paljon valintoja. Liitteet lisätään (siis nimi) hakkuriin.

Liitteet lisäävät tapahtumia vastaavilla alimerkeillä, tapahtumatasolla, tasotasolla ja hakkurin nimen alussa.

ulkoasuja

Lisäksi on seitsemän asettelua, jotka voidaan liittää liitteeseen. Nämä ohjaavat, miten tapahtuman viesti kirjataan, ja voivat sisältää poikkeustekstin, aikaleiman asettelut ja XML-elementit.

Konfigurointi XML: n avulla

Vaikka konfigurointi voidaan tehdä ohjelmallisesti, se voidaan tehdä myös XML Config-tiedostoilla. Miksi mieluummin konfigurointitiedostot kuin koodimuutokset? Yksinkertainen, on paljon helpompaa saada tukimies muuttamaan konfiguraatiotiedostoa kuin saada ohjelmoija vaihtamaan koodia, testaamaan ja asentamaan uusi versio. Joten konfigurointitiedostot ovat tie. Yksinkertaisin mahdollinen polku on lisätä App.config-projekti projektiisi alla olevan esimerkin mukaisesti:

1.0UTF-8





















Log4netin online-ohjeissa selitetään kaikki konfigurointitiedostokentät. Kun olet määrittänyt App.config, lisää log4net-sovelluksella ja tämä rivi:

[kokoonpano: log4net. Config. XmlConfigurator (Katso = totta)]

Lisäksi todellinen hakija on haettava kutsulla LogManagerille. GetLogger (...). GetLogger kutsutaan yleensä typeof-luokalla (luokalla), jota se käyttää, mutta tämä funktiokutsut hakee myös:

Järjestelmä. Heijastus. MethodBase. GetCurrentMethod (). DeclaringType

Tämä esimerkki näyttää molemmat yhdessä yhden kommentoidun kanssa, joten voit valita.

log4netin avulla;
[kokoonpano: log4net. Config. XmlConfigurator (Katso = totta)]
nimiavaruus gvmake
{
luokkaohjelma
{
yksityinen staattinen luku vain ILog log = LogManager. GetLogger (Järjestelmä. Heijastus. MethodBase. GetCurrentMethod
() .DeclaringType);
// yksityinen staattinen luku vain ILog log = LogManager. GetLogger (typeof (Program));
staattinen void Main (merkkijono [] args)
{
Hirsi. Debug ("Sovelluksen käynnistäminen");
}
}
}