Ağu
6
2015

Weblogic Sunucusunda Log4j ile Loglama Yapılması

Merhaba,

Bu yazımda Weblogic sunucusu üzerinde koşan bir webservis içerisinden log4j ile configure edilmiş loglama işlemlerinin nasıl yapılacağını anlatmaya çalışacağım.

Ortam Bilgileri

Weblogic Sunucusu : unix makina üzerine kurulu 10.3.5
Java Versiyonu : JDK 1.6

Web Servis projesi kütüphaneleri arasına slf4j-api-1.7.2.jar, slf4j-log4j12-1.7.2.jar jarları eklenir.

 
 
import org.slf4j.LoggerFactory;
 
@WebService(serviceName = "DROP_SHIPMENTS_WS")
 
PUBLIC class DROP_SHIPMENTS_WS {
 
     /**
     * logger
     */
    PRIVATE static final org.slf4j.Logger _LOG = LoggerFactory.getLogger(DROP_SHIPMENTS_WS.class);
 
    @Resource
    WebServiceContext wsContext;

yukarıdaki şekilde web servis classına static olarak logger tanımlaması yapılır.

Ayrıca proje içerisindeki weblogic.xml dosyası içerisine aşağıdaki tanımlama eklenmelidir.

 
     <container-descriptor>
         <prefer-application-packages>
             <package-name>org.slf4j.*</package-name>
             <package-name>org.apache.commons.logging.*</package-name>
         </prefer-application-packages>     
     </container-descriptor>

container-descriptor tagi arasına yukarıdaki tanımlamalar eklenerek ilgili logların süzülmesi sağlanır.

Bu aşamadan sonra log4j nin property dosyası hazırlanarak domain home una bırakılmalıdır. (unix base sistemde örnek domain home u “/data01/WLS/Oracle/Middleware/user_projects/domains/base_domain” gibidir.)

Bu örnekte log4j.properties isimli bir dosya hazırlanmıştır dosyasının içeriği aşağıdaki gibidir.

 
log4j.appender.console=org.apache.log4j.ConsoleAppender  
log4j.appender.console.layout=org.apache.log4j.PatternLayout 
log4j.appender.console.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n
log4j.appender.console.threshold=ERROR
 
log4j.appender.A1=org.apache.log4j.RollingFileAppender
log4j.appender.A1.layout=org.apache.log4j.PatternLayout
log4j.appender.A1.layout.ConversionPattern=%d %5p %c{1}:%L - %m%n 
log4j.appender.A1.File=/data01/WLS/Oracle/Middleware/user_projects/domains/base_domain/tmp/DROP_SHIPMENTS.LOG
log4j.appender.A1.MaxFileSize=5MB
log4j.appender.A1.MaxBackupIndex=50
 
#WARN FOR ALL classes
log4j.rootLogger=INFO, A1, console

Bu property içeriğine göre “/data01/WLS/Oracle/Middleware/user_projects/domains/base_domain/tmp” bu uzantıda DROP_SHIPMENTS.log isimli bir log file oluşacaktır. 5MB ta bir yedeklenerek max 50 yedek oluşacak şekilde bir configurasyon yapılmıştır.Ayrıca formatı ve loglama seviyeleri konfigurasyonda tanımlanmıştır.

Oluşturulan bu file (log4j.properties) /data01/WLS/Oracle/Middleware/user_projects/domains/base_domain içerisine bırakılır.

Bu aşamdan sonra weblogic domain start olduğunda log4j dosyasının initialize olması gerekmektedir bunun sağlanması için ilgili bu domain nin (ki bu örnekte base_domain dir) bin dizini altındaki “startWebLogic.sh” dosyası içerisine
aşağıdaki tanımlamaların eklenmesi gerekmektedir.

 
 
# --- log4j start ---
 
LOG4J_CONFIG_FILE="/data01/WLS/Oracle/Middleware/user_projects/domains/base_domain/log4j.properties"
 
IF [ "${LOG4J_CONFIG_FILE}" != "" ] ; THEN
 
JAVA_PROPERTIES="${JAVA_PROPERTIES} -Dlog4j.configuration=${LOG4J_CONFIG_FILE}"
 
fi
 
# --- log4j end ---

Bu aşamadan sonra eğer domain startup ta ise shutdown edilip yeniden startup yapılmalıdır. Domain start olduğunda ilgili log dosyasını oluştuğunu ve class içerisinde _LOG objesi ile yazılan WARN, ERROR ve INFO satırlarının olduğu görülecektir.

Mustafa Korkmaz

Oracle Applications Developer at Partnera
2005 yılında Dokuz Eylül Üniversitesi Endüstri Mühendisliğinden Mezun
Oldu, 2011 Yılında Ahmet Yesevi Üniversitesi Bilgisayar Mühendisliğinde
Yüksek Lisansını Tamamlandı,2012 Yılında Doğuş Üniversitesinde Bilgisayar
Mühendisliği Doktora Eğitimine Başladı.10 yılı aşkın bir zamandır Oracle
Ürünleri Uygulama Yazılım Uzmanı Olarak profesyonel kariyerine devam
etmektedir. İlgi alanları Middleware, CI/CD,
Oracle Database , PL/SQL , Java , Makine Öğrenmesi ve Veri Madenciliği alanlarındadır.
2 versiyon Oracle Database ' (10g, 11g) inde OCA(Oracle Certificate Associate) ve
PL/SQL Certificated Professional ünvanları bulunmaktadır.
Mail: mustafakorkmz@gmail.com
Mustafa Korkmaz


Yorum yapın

*