Kako narediti prijavo v C # z Log4netom

Ko pišete računalniška koda v C # je dobra ideja, da vključite kodo za beleženje. Tako, ko gre kaj narobe, veste, kje začeti iskati. Svet Java to počne že leta. V ta namen lahko uporabite log4net. Je del Apache log4j 2, priljubljenega okvira za beleženje odprtokodnih virov.

To ni edini okvir za beleženje .NET; veliko jih je. Vendar pa Apač ime je zaupanja vredno in izvirni okvir za beleženje Java obstaja že več kot 15 let.

Zakaj uporabljati okvir za prijavo Log4net?

Ko se aplikacija ali strežnik zruši, se sprašujete, zakaj. Ali je šlo za okvaro strojne opreme, zlonamerno programsko opremo, morda napad za zavrnitev storitve ali kakšno nenavadno kombinacijo tipk, ki uspe zaobiti vsa preverjanja kode? Samo ne veš.

Ugotoviti morate, zakaj je prišlo do zrušitve, da se lahko odpravi. Če je omogočena beleženje, boste morda videli, zakaj se je to zgodilo.

Uvod

Prenesite datoteko log4net s spletnega mesta Apache log4net. Preverite celovitost prenesenih datotek s podpisom PGP ali kontrolnimi vsotami MD5. Kontrolne vsote niso tako močni kazalci kot podpis PGP.

instagram viewer

Uporaba sistema Log4net

Log4net podpira sedem stopenj beleženja od nobene do vse večje prednosti. To so:

  1. OFF
  2. FATALNO
  3. NAPAKA
  4. OPOZORILO
  5. INFO
  6. DEBUG
  7. VSE

V višje ravni so vključene vse nižje. Pri odpravljanju napak, z uporabo DEBUG kaže vse, toda o produkciji vas bo morda zanimala samo FATAL. Ta izbira se lahko opravi na ravni komponente programsko ali v datoteki XML Config.

Drvarji in priloge

Za prilagodljivost log4net uporablja zapisovalnike, priloge in postavitve. Dnevnik je predmet, ki nadzoruje beleženje in je izvedba vmesnika ILog, ki določa pet logičnih metod: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled in IsFatalEnabled. Prav tako določa pet načinov - Debug, Info, Warn, Error inFatal - skupaj s preobremenitvami in petimi oblikovanimi različicami niza. Celoten vmesnik ILog si lahko ogledate v spletnem priročniku log4net.

Drvarjem je dodeljena ena od ravni, ne pa VSE ali IZKLJUČENA, le ostalih pet.

Dodatek nadzira, kam gre seč. Lahko je v zbirki podatkov, v vmesnem pomnilniku, v konzoli, na oddaljenem gostitelju, v besedilno datoteko z valjanimi dnevniki, dnevnikom dogodkov Windows ali celo po e-pošti prek SMTP-ja. Skupno je 22 predalnikov in jih je mogoče kombinirati, tako da imate veliko izbire. Dodatelji so priloženi (od tod tudi ime) drvarju.

Dodaci filtrirajo dogodke tako, da ujemajo podtočke, raven dogodkov, obseg stopenj in začetek imena zapisovalnika.

Postavitve

Na koncu je sedem postavitev, ki jih je mogoče povezati s predalnikom. Ti nadzorujejo način zapisovanja sporočila o dogodku in lahko vključujejo besedilo izjeme, postavitve časovnih žigov in Elementi XML.

Konfiguriranje z XML

Čeprav se konfiguriranje lahko izvede programsko, se lahko izvede tudi z datotekami XML Config. Zakaj bi raje konfiguracijske datoteke namesto sprememb kode? Preprosto, veliko lažje je, da podpornik spremeni spremembo konfiguracijske datoteke, kot pa programer, da spremeni kodo, preizkusi in prerazporedi novo različico. Torej, konfiguracijske datoteke so pot. Najpreprostejša možna pot je, da v projekt dodate App.config, kot je prikazano v spodnjem primeru:

1.0utf-8





















Spletna dokumentacija log4net razlaga vsa polja konfiguracijske datoteke. Po nastavitvi App.config dodajte z uporabo log4net in to vrstico:

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

Poleg tega je treba dejanski zapisovalnik prevzeti s klicem v LogManager. GetLogger (...). GetLogger se običajno pokliče z typeof (razredom), v katerem se uporablja, vendar ta klic funkcije tudi pridobi:

Sistem. Odsev MethodBase. GetCurrentMethod (). Izjava o tipu

Ta primer prikazuje oboje z enim komentiranim, tako da lahko izberete.

z uporabo log4net;
[montaža: log4net. Konfigurirajte. XmlConfigurator (Watch = true)]
imenski prostor gvmake
{
razred program
{
zasebni statični dnevnik samo za branje ILog log = LogManager. GetLogger (sistem. Odsev MethodBase. GetCurrentMethod
() .DeclaringType);
// zasebni statični dnevnik samo za branje ILog log = LogManager. GetLogger (typeof (program));
statični void Main (string [] args)
{
dnevnik. Odpravljanje napak ("Zagon aplikacije");
}
}
}

instagram story viewer