Log4j – 02 – Apache Log4j Ozellikleri & Mimarisi

Merhaba Arkadaslar,
Bu yazimda Apache Log4j ozellikleri ve mimarisi hakkinda bilgi verecegim.

Log4j , Apache Software License’a sahip Java ile yazilmis reliable(guvenilir) , hizli , flexible(esnek) loglama framework’udur.

Log4j mimarisi katmanli bir yapidadir. Her katman farkli objeler ve fakli gorevlerden olusmaktadir. Bu katmanli yapi flexible(esneklik) ozelligini saglamaktadir.

Top Layer(Ust Katman) , loglama bilgilerini alir ,Middle Layer(Orta Katman) log bilgilerinin analizinden ve authorizing(yetkilendirmeden) ,Bottom Layer(Alt Katman) ise formalama(formatting) ve log bilgilerinin ilgili dizine/hedefe gondermekten/kaydetmekten sorumludur.

Log4J framework yapisinda temel olarak 2 tip obje vardir;

Core Objects(Temel Objeler)
Bu objeler Log4j yapisi icin zorunludur. (mandotary)

Logger:  Logger objesi Category objesi olarak da bilinir. Loglama bilgilerinin alinmasindan sorumludur. (Top Layer)

Appender: Appender objesi, loglama bilgilerinin ilgili dizine/hedefe gondermekten/kaydetmekten sorumludur . Bu hedefler database, dosya, console vb olabilir.(Bottom Level)

Layout: Layout objesi, log bilgilerini formatlamak icin kullanilir. Appender objesi Layout objesini kullanir. Layout objesi loglarin rahat okunurlugunu saglar (human-readable).

Support Objects(Yardimci Objeler)
Logger, Appender, Layout log4j mimarisinin temelini olusturmaktadir. Bununla birlikte log4j mimarisinde yardimci objeler bulunmaktadir.

Level: Level objesi, loglama bilgilerini onceliklendirmede (priority) kullanilir. 7 tane “Level” bulunmaktadir;

ALL DEBUG INFO WARN ERROR FATAL OFF

Loglama bilgileri aciga en cok Level ALL durumunda cikacaktir (publish) . Tam tersi olarak Level OFF durumunda hic bir loglama bilgisi ortaya cikmayacaktir.

Filter: Filter objesi , loglanacak bilgileri analiz eder ve bu bilgilerin loglanip loglanmayacagi kararini verir. Filter objesi, uygulamaya ozel (application-specific) kriterlere gore istenmeyen loglama bilgilerini ayirmak/elemek/filtrelemek icin kullanislidir.

ObjectRenderer: ObjectRenderer objesi , loglama frameworkune/yapisina gelen farkli turdeki objelerin String olarak temsil edilmesini saglar.

LogManager: LogManager objesi , loglama frameworkunu yonetir. Konfigurasyon dosyasindan, initial/ilk/baslangic duzeneleme bilgilerini okumaktan sorumludur.

log4 objects

Log4j framework’unun merkezinde Logger objesi bulunur. Uygulamamiz bir Logger instance olusturur ve loglama bilgilerini aktarir.(Logging Information)

Logger objesi kendisiyle iliskilendirilmis bir Level objesine sahiptir. Kendisiyle iliskilendirilmis bu Level objesine gore loglama istegi kabul edilir veya reddedilir. Bir nevi threshold/esik siniri durumu soz konusudur. Logger objesi , loglama seviyesine(level) gore isimlenmis metotlara sahiptir.

 log.setLevel(Level.WARN);

log degiskeninin Logger turunde oldugunu ve Level’in Level.Warn olarak  ayarlandigini dusunursek;

 log.trace("Trace Message!");
 log.debug("Debug Message!");
 log.info("Info Message!");
 log.warn("Warn Message!");
 log.error("Error Message!");
 log.fatal("Fatal Message!");

Metotlari su log bilgilerini olusturacaktir;

Warn Message!
Error Message!
Fatal Message!

Logger objesine benzer sekilde Appender objesinde de bu Level threshold/esik durumu soz konusudur.

Screenshot from 2014-01-01 19:15:49

Yazimi burada sonlandiriyorum.

Herkese Bol Javali Gunler dilerim.
Be an oracle man , import java.*;
Levent Erguder
OCP, Java SE 6 Programmer
injavawetrust

Print Friendly, PDF & Email

Leave a Reply

Your email address will not be published. Required fields are marked *