Log4j API, herhangi bir katmanın farklı görevleri gerçekleştirmek için farklı nesneler sağladığı katmanlı mimari izler. Bu katmanlı mimari dizaynı gelecekte esnek ve kolay genişletebilir olmasını sağlar.
Log4j frameworkü ile birlikte mevcut iki tür nesne vardır:
- Core Objects: Zorunlu framework nesneleridir. Frameworkü kullanmaları gerekir.
- Support Objects: İsteğe bağlı framework nesneleridir. Ek ama önemli görevleri gerçekleştirmek için Core nesneleri destekler.
Core Objects
Core nesneler aşağıdaki nesne türlerini içerir:
- Logger Object: En üst katman, Logger nesnesini sağlayan Loggerdir. Logger nesnesi loglama bilgilerini yakalamaktan sorumludur ve bir namespace hiyerarşisinde saklanır.
- Layout Object: Layout katmanı, loglama bilgilerini farklı stillerde biçimlendirmek için kullanılan nesneleri sağlar. Loglama bilgilerini yayınlamadan önce appender nesnelerine destek sağlar. Layout nesneleri, loglama bilgilerini insan tarafından okunabilir ve yeniden kullanılabilir şekilde yayınlamakta önemli bir rol oynar.
- Appender Object: Appender nesnelerini sağlayan düşük seviyeli bir katmandır. Appender nesnesi, loglama bilgilerini veritabanı, dosya, console, UNIX Syslog vb. tercih edilen hedeflere yayınlamaktan sorumludur.
Aşağıdaki diyagram Log4j componentlerini gösteriyor: