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
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
Latest posts by Mustafa Korkmaz (see all)
- Log4j CVE-2021-45046 Zafiyeti - 16 Aralık 2021
- Materialized View Verisi Purge ya da Delete (atomic_refresh) - 12 Kasım 2021
- HTML Görüntüsü için Unicode Dönüşümü - 27 Temmuz 2020