miercuri, 14 ianuarie 2009

log4j

Log4j este un pachet “third party” care furnizeaza functionalitate similara Java Logging. El poate fi descarcat de la adresa http://logging.apache.org/log4j/

Log4j se bazeaza pe trei concepte-cheie:

  1. Logger
  2. Appender
  3. Layout
Logger

Este un obiect aproape identic celui din Java Logging. Fiecare Logger are un nume si se creeaza prin apelarea metodei Logger.getLogger(String name).

Un obiect Logger dispune de mai multe metode de logare, legate strans de prioritatea cu care se va afisa mesajul respectiv.

Nivelele de prioritate log4j sunt:

Nivel de prioritate

Metoda corespunzătoare din clasa Logger

ALL

-

ERROR

error

WARN

warn

INFO

info

DEBUG

debug

TRACE

trace


Nivelele de prioritate sunt constante ale clasei org.apache.log4j.Level (de ex: Level.INFO, Level.DEBUG etc.)

Pentru a creste viteza de executie, inainte de apelarea metodei efective ale obiectului Logger, se poate verifica nivelul curent de logare prin apelarea uneia dintre metodele isInfoEnabled, isDebugEnabled, isTraceEnabled sau prin apelarea metodei isEnabledFor(Priority level).

Ierarhii de obiecte Logger

Obiectele Logger sunt organizate in ierarhii, dupa nume. Fiecare obiect Logger are un nume, care poate contine caracterul '.' (punct), asemeni numelor de package. Ierarhia de loggere se face urmand tot regula formarii de package-uri Java.


Exemplu: logger-ul cu numele “promanagement.logger.log4j” este copilul logger-ului “promanagement.logger”.

Un Logger copil mosteneste nivelul de prioritate al parintelui sau, daca nu ii este asignat un nivel explicit.
Exista un Logger “radacina”, care este intors de apelul metodei statice Logger.getRootLogger().

Obiecte Appender
Seamana cu obiectele Handler din Java Logging. Un obiect Logger este atasat unui Appender, care executa scrierea efectiva de loguri. Log4j dispune de obiecte Appender predefinite, cum ar fi org.apache.log4j.RollingFileAppender , org.apache.log4j.DailyRollingFileAppender sau org.apache.log4j.ConsoleAppender (stdout). De asemenea se pot defini propriile obiecte Appender.

Un obiect Appender este atasat unui Logger dupa nume, in fisierul de configurare.

Obiecte Layout

Un obiect layout controleaza aspectul textului in fisierul log. Un astfel de obiect este atasat declarativ, in fisierul de configurare, fiecarui obiect Appender.

Log4j pune la dispozitie mai multe clase Layout (toate derivate din org.apache.log4j.Layout):
  1. org.apache.log4j.PatternLayout
  2. org.apache.log4j.xml.XMLLayout
  3. org.apache.log4j.HTMLLayout
  4. org.apache.log4j.SimpleLayout
Fisiere de configurare log4j:
Log4j poate fi configurat prin fisiere de proprietati (.properties) sau prin fisiere xml.

Exemplu: fisier de configurare log4j.properties:



Exemplu de fisier de configurare XML: