Když píšete počítačový kód v C # je vhodné zahrnout logovací kód. Tímto způsobem, když se něco pokazí, víte, kde začít hledat. Svět Java to dělá už roky. K tomuto účelu můžete použít log4net. Je součástí Apache log4j 2, populární open-source logging framework.
Toto není jediný .NET logging framework; je jich mnoho. Nicméně, Apache jméno je důvěryhodné a původní Java logging framework existuje již více než 15 let.
Proč používat Log4net Logging Framework?
Když dojde k selhání aplikace nebo serveru, necháte se divit proč. Byla to chyba hardwaru, malwaru, možná útok Denial of Service nebo nějaká zvláštní kombinace kláves, která dokáže obejít všechny kontroly kódu? Prostě to nevíš.
Musíte zjistit, proč došlo k havárii, aby mohla být napravena. Pokud je protokolování povoleno, můžete zjistit, proč k tomu došlo.
Začínáme
Stáhněte si soubor log4net z webové stránky Apache log4net. Ověření integrity stažených souborů pomocí kontrolního součtu podpisu PGP nebo MD5. Kontrolní součty nejsou tak silné ukazatele jako podpis PGP.
Pomocí Log4net
Log4net podporuje sedm úrovní protokolování od žádné ke všem, což zvyšuje prioritu. Tyto jsou:
- VYPNUTO
- FATAL
- CHYBA
- VAROVAT
- INFO
- LADIT
- VŠECHNO
Vyšší úrovně zahrnují všechny nižší. Při ladění pomocí LADIT ukazuje vše, ale o produkci by vás mohl zajímat pouze FATAL. Tuto volbu lze provést na úrovni komponenty programově nebo v souboru XML Config.
Loggers a Appenders
Pro flexibilitu používá log4net loggery, přívěsky a rozvržení. Logger je objekt, který řídí protokolování a je implementací rozhraní ILog, které určuje pět booleovských metod: isDebugEnabled, IsInfoEnabled, IsWarnEnabled, IsErrorEnabled a IsFatalEnabled. Specifikuje také pět metod - Debug, Info, Warn, Error and Fatal - spolu s přetížením a pěti formátováním řetězců. Úplné rozhraní ILog můžete vidět v online příručce log4net.
Loggery mají přiřazenu jednu z úrovní, ale ne VŠECHNY nebo VYPNUTÉ, pouze ostatních pět.
Připojovatelé řídí, kam se protokolování bude pohybovat. Může být do databáze, do vyrovnávací paměti v paměti, do konzoly, na vzdáleného hostitele, do textového souboru s průběžnými protokoly, do protokolu událostí systému Windows nebo dokonce do e-mailu prostřednictvím protokolu SMTP. Celkem je jich 22 a lze je kombinovat, takže máte spoustu možností. Připojovatelé jsou připojeni (odtud název) k záznamníku.
Appenders filtruje události podle odpovídajících podřetězců, úrovně událostí, rozsahu úrovní a začátku názvu loggeru.
Rozložení
Nakonec existuje sedm rozvržení, která mohou být spojena s Appenderem. Řídí způsob záznamu zprávy události a mohou zahrnovat text výjimek, rozvržení časových razítek a Prvky XML.
Konfigurace pomocí XML
Ačkoli konfiguraci lze provést programově, lze ji provést také se soubory XML Config. Proč byste raději konfigurovali soubory před změnami kódu? Jednoduše, je mnohem snazší nechat podpůrného chlapa provést změnu konfiguračního souboru, než získat programátora, aby změnil kód, vyzkoušel a znovu nasadil novou verzi. Takže konfigurační soubory jsou cestou. Nejjednodušší možnou cestou je přidat App.config projektu, jak je ukázáno v příkladu níže:
Online dokumentace log4net vysvětluje všechna pole konfiguračního souboru. Po nastavení App.config přidejte pomocí log4net a tento řádek:
[shromáždění: log4net. Config. XmlConfigurator (Watch = true)]
Navíc skutečný logger musí být vyvolán voláním do LogManageru. GetLogger (...). GetLogger je obvykle volán s typem (třídou), ve kterém je používán, ale tato funkce volá také vyvolá, že:
Systém. Odraz. MethodBase. GetCurrentMethod (). DeclaringType
Tento příklad ukazuje obojí s jedním komentovaným, takže si můžete vybrat.
pomocí log4net;
[shromáždění: log4net. Config. XmlConfigurator (Watch = true)]
jmenný prostor gvmake
{
program třídy
{
private static readonly ILog log = LogManager. GetLogger (Systém. Odraz. MethodBase. GetCurrentMethod
() .DeclaringType);
// private static readonly ILog log = LogManager. GetLogger (typeof (Program));
static void Main (řetězec [] args)
{
log. Debug („Spuštění aplikace“);
}
}
}