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


Yorum yapın

*