Toto je vyrovnávacia pamäť Google pre http://wiki.cnl.tuke.sk/QoSProjekt/MonLog4J. Je to snímka stránky, ako sa zobrazila dňa 15. mar. 2009 18:19:26 GMT. Aktuálna stránka sa odvtedy mohla zmeniť. Viac informácií

Len textová verzia
 
MonLog4J < QoSProjekt < TWiki
r1 - 22 May 2007 - 13:09:10 - MatusTarabaYou are here: TWiki >  QoSProjekt Web  >  MonitInfSys > MonLog4J

Java Servlets - logovanie pomocou Log4J

Pri práci a hlavne pri odlaďovaní servletov vývojár aplikácie veľmi často potrebuje zaznamenávať rôzne typy informácií. Logovanie môžete využiť nie len na ukladanie debugovacích informácií počas vývoja aplikácie, ale tiež na ukladanie informácií v ostrej prevádzke, vrátane rôznych varovaní a popisu chýb. Logovanie umožňuje posielať správy a zobrazovať ich rôznymi spôsobmi či už pre programátora alebo administrátora, pričom logované správy môžu byť doručené na konzolu, alebo uložené do súboru či databázy. Za týmto účelom bol vytvorený veľmi výkonný open source nástroj Log4J, samozrejme v spojení so servletmi.

Základná koncepcia Log4J

Log4J obsahuje tri hlavné prvky:

  • logger
  • appender
  • layout
Ak chcete môžete si tieto prvky preložiť do vám vyhovujúceho jazykového tvaru. Ku každému prvku si povieme niečo bližšie. Log4J využíva systém externých konfiguračných súborov určených na konfigurovanie týchto troch prvkov. Sú to prevažne textové súbory obsahujúce dvojice parameter/hodnota.

Logger

Logger je entita, ktorú servlet využíva na logovanie správ. Aby sme ju mohli použiť, je nutné naimportovať triedy Log4J, vytvoriť jej inštanciu (konkrétne org.apache.log4j.Logger), a potom zavolať príslušnú metódu. Názvy logovacích metód sú odvodené od tzv. logovacích úrovní. Napríklad ak chceme zalogovať nejakú informatívnu správu, zavoláme nasledovnú metódu:
logger.info("HttpServlet init method called.");
Log4J má päť rôznych logovacích úrovní (prípadne kategórií):
DEBUG
má primárne na starosti logovanie informácií v procese vývoja a odlaďovania aplikácie.
INFO
je určené na monitoring stavu a priebehu aplikácie.
WARN
označuje a monitoruje potenciálne nebezpečné situácie.
ERROR
reprezentuje chybové stavy, z ktorých je možné sa zotaviť
FATAL
ako posledná úroveň sú fatálne chyby spôsobujúce ukončenie aplikácie
Uvedené kategórie sú zoradené vzostupne. Inými slovami existuje tu hierarchia. Napríklad logger prislúchajúci k úrovni WARN, môže logovať iba informácie na tejto a vyšších úrovniach (ERROR a FATAL), ale nemôže logovať správy na úrovni DEBUG a INFO, pretože sa v hierarchii nachádzajú pod kategóriou WARN.

Každý logger je konfigurovaný na príslušnú úroveň v Log4J konfiguračnom súbore, pričom správy ktoré sa logujú sú logicky prepojené s príslušným loggerom. Napríklad si predstavte, že nastavíme logger na úroveň DEBUG a vytvoríme servlet, ktorý bude obsahovať nejeké množstvo volaní metódy logger.debug(Object message). Tieto volania budú využité pri debugovaní. Neskôr zmeníme úroveň nášho loggera na úroveň INFO. Výsledok bude, že debugovacie správy sa už nebudú zaznamenávať do logovacej repository (konzola, súbor, databáza). Je to preto, pretože úroveň DEBUG nie je rovná alebo vyššia ako úroveň INFO v danej hierarchii.

Appender

Log4J umožňuje logovať správy rôznymi spôsobmi. Môžete logovať štandardne na konzolu (užitočné najmä pri vývoji aplikácie), môžete logovať do súboru, do databázy, môžete poslať správu na email server. Log4J označuje tieto jednotlivé logovacie mechanizmy ako appender. Ich popis sa umiestňuje do konfiguračného súboru (prevažne je to log4j.properties).

Layout

Layout špecifikuje jednak výsledný vzhľad ako bude výsledný log vyzerať a tiež aj aký rozsah informácií bude obsahovať. Na výber máte množstvo rôznych layoutov, ktoré môžete priradiť v konfiguračnom súbore log4j.properties. Môžete špecifikovať veľmi jednoduchý ale aj veľmi komplexný layout prostredníctvom tzv. konverzných šablón, ktoré sa veľmi podobajú na regulárne výrazy.

Napríklad ak nám stačí základný layout, použijeme triedu org.apache.log4j.SimpleLayout. Použitím tohto formátu bude log obsahovať názov logovacej kategórie, pomlčku a samotnú správu. Napríklad: " INFO - HttpServlet? init method called ".

-- MatusTaraba - 22 May 2007

Edit | WYSIWYG | Attach | Printable | Raw View | Backlinks: Web, All Webs | History: r1 | More topic actions
 
Powered by TWiki
This site is powered by the TWiki collaboration platformCopyright © by the contributing authors. All material on this collaboration platform is the property of the contributing authors.
Ideas, requests, problems regarding TWiki? Send feedback