Amikor írsz számítógépes kód a C #-ban jó ötlet a naplózási kódot is belefoglalni. Ily módon, ha valami rosszul fordul elő, akkor tudja, hol kezdje keresni. A Java világ évek óta ezt csinálja. Erre a célra használhatja a log4net-et. Az Apache log4j 2 része, egy népszerű nyílt forrású naplózási keretrendszer.
Ez nem az egyetlen .NET naplózási keret; sok van. Azonban a Apache A név megbízható, és az eredeti Java naplózási keret több mint 15 éve fennáll.
Miért érdemes használni a Log4net naplózási keretet?
Amikor egy alkalmazás vagy szerver összeomlik, akkor azon gondolkodik, miért. Hardverhiba, rosszindulatú program, talán a szolgáltatásmegtagadás támadása vagy valami furcsa billentyűkombináció, amely képes megkerülni az összes kódellenőrzést? Csak nem tudod.
Ki kell tudnia, hogy miért történt egy baleset, hogy ez kijavítható. Ha a naplózás engedélyezve van, akkor láthatja, hogy miért történt ez.
Elkezdeni
Töltse le a log4net fájlt az Apache log4net webhelyről. Ellenőrizze a letöltött fájlok integritását a PGP aláírás vagy MD5 ellenőrző összegek segítségével. Az ellenőrző összegek nem olyan erős mutatók, mint a PGP aláírása.
A Log4net használata
A Log4net támogatja a hét naplózási szintet semmilyenről mindenre a növekvő prioritás mellett. Ezek:
- KI
- HALÁLOS
- HIBA
- FIGYELMEZTET
- INFO
- DEBUG
- MINDEN
A magasabb szintek az alsókat tartalmazzák. Hibakereséskor a DEBUG mindent megmutat, de a produkciónál valószínűleg csak a FATAL érdekli. Ezt a választást az összetevő szintjén lehet megtenni programozottan vagy XML Config fájlban.
Fakitermelők és csatolók
A rugalmasság érdekében a log4net naplózókat, függelékeket és elrendezéseket használ. A naplózó egy olyan objektum, amely ellenőrzi a naplózást, és az ILog interfész megvalósítása, amely öt logikai módszert határoz meg: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled és IsFatalEnabled. Ezenkívül meghatározza az öt módszert - hibakeresés, információ, figyelmeztetés, hiba és fatalis -, valamint a túlterheléseket és az öt formázott karakterlánc-verziót. A teljes ILog felületet a log4net online kézikönyvében láthatja.
A naplózókat az egyik szinthez rendelik, de nem MINDEN vagy KI, csak a másik öt.
A függelékek irányítják a naplózást. Lehet adatbázisba, memória pufferbe, konzolba, távoli gazdagépbe, gördülő naplókkal ellátott szövegfájlba, a Windows eseménynaplóba, vagy akár SMTP-n keresztül e-mailbe. Összesen 22 függelék található, és kombinálhatók, így sok választási lehetősége van. A függelékeket (így a nevét) csatolják a fakitermelőhöz.
A függelékek szűrik az eseményeket az alszövegek, eseményszint, szinttartomány és a naplózó nevének kezdőpontja alapján.
elrendezések
Végül hét elrendezés társítható egy függelékhez. Ezek szabályozzák az esemény üzenetének naplózását, és tartalmazhatnak kivétel szöveget, időbélyegző-elrendezéseket és XML elemek.
Konfigurálás XML-sel
Noha a konfigurálás programozhatóan történik, meg lehet csinálni az XML Config fájlokkal is. Miért inkább szeretné a konfigurációs fájlokat, mint a kódváltásokat? Sokkal egyszerűbb, ha sokkal könnyebb, ha egy támogató srác módosít egy konfigurációs fájlt, mint amennyire programozót kell kérnie a kód megváltoztatására, új verzió tesztelésére és telepítésére. Tehát a konfigurációs fájlokat kell megtenni. A legegyszerűbb út az App.config hozzáadása a projekthez, az alábbi példában látható módon:
A log4net online dokumentáció ismerteti az összes konfigurációs fájlmezőt. Az App.config beállítását követően adja hozzá a log4net használatával és ezt a sort:
[összeszerelés: log4net. Config. XmlConfigurator (Watch = true)]
A tényleges naplózót le kell vonni a LogManager hívására. GetLogger (...). A GetLoggert általában azzal a typeof (class) -nel hívják, amelyben használják, de ez a funkcióhívás azt is lehívja, hogy:
Rendszer. Visszaverődés. MethodBase. GetCurrentMethod (). DeclaringType
Ez a példa mindkettőt egy kommentálással mutatja be, így választhat.
log4net használatával;
[összeszerelés: log4net. Config. XmlConfigurator (Watch = true)]
névtér gvmake
{
osztály program
{
privát statikus olvasás ILog log = LogManager. GetLogger (Rendszer. Visszaverődés. MethodBase. GetCurrentMethod
() .DeclaringType);
// magán statikus, csak olvasható ILog log = LogManager. GetLogger (typeof (Program));
statikus érvénytelen Fő (karakterlánc [] args)
{
jelentkezzen. Hibakeresés ("Az alkalmazás indítása");
}
}
}