2016-04-12 18 views
1

WebLogic 12.2.1'de çalışan JAX-RS web servisim var.

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="DEBUG"> 
    <Properties> 
     <Property name="log-path">E:/MLM/MLMDomain/servers/MLMAppSrv01/logs</Property> 
    </Properties> 
    <Appenders> 
     <RollingFile name="RollingFile" fileName="${log-path}/MLMServices.log" filePattern="${log-path}/MLMServices-%d{yyyy-MM-dd}-%i.log" > 
    .... 

Sonraki yerine yönetilen sunucu adı hardcoding "MLMAppSrv01": Web Servis girişinde için log4j2 kullanır ve log4j2.xml belirtilen burada gösterildiği gibi şimdiye kadar, günlük dosyasına oturum açabilir

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="DEBUG"> 
    <Properties> 
     <Property name="log-path">E:/MLM/MLMDomain/servers/${weblogic.Name}/logs</Property> 
    </Properties> 
    <Appenders> 
     <RollingFile name="RollingFile" fileName="${log-path}/MLMServices.log" filePattern="${log-path}/MLMServices-%d{yyyy-MM-dd}-%i.log" > 
    .... 

Şimdi yerine gerçek WebLogic sunucu adı, basitçe log4j2 ile $ {weblogic.Name} değiştirme,: burada gösterildiği gibi, ben "$ {weblogic.Name}" kullanarak bir özellik ikamesi olarak değiştirdim gerçek bir alt klasör adı olarak $ {weblogic.Name} işlem gördü, bu nedenle günlük dosyamın şu klasörde oluşturulmasını sağladım:

E:/MLM/MLMDomain/servers/${weblogic.Name}/logs 

Web hizmeti kodlarında, System.getProperty ("weblogic.Name") kullandığımda, uygulamanın çalıştığı "MLMAppSrv01" olan gerçek yönetilen sunucuyu alabiliyordum. Dolayısıyla, "weblogic.Name" in gerçekten JVM'de tanımlandığını gösterir. Ben -Dweblogic.Name = MLMAppSrv01 ileterek tek başına bir programda değiştirilmiş log4j2.xml dosyasını kullandığınızda

, iyi çalışıyor ve dosya oluşturulur: ne olabilir

E:/MLM/MLMDomain/servers/MLMAppSrv01/logs 

log4j2.xml dosyasındaki $ {}, WebLogic'te çalışmıyor mu?

Şimdiden teşekkürler.

cevap

1

Değişken bir sistem özelliği olarak belirtildiyse, $ {sys: weblogic.Name} kullanmanız gerekir; böylece Log4j, değişkeni çözmek için SystemPropertiesLookup'u kullanır. Bu olmadan, yalnızca özellikler bölümünde bildirilen değişkenlere erişebileceksiniz.

+0

Çok teşekkür ederim! Tek başına bir program için neden hala "sys:" öneki ile veya olmadan çalışıyor diye şaşırıyorum. Ama WebLogic için kesinlikle "sys:" önekine ihtiyacım var. – user3573403

İlgili konular