2016-04-12 71 views
0

Wildfly 8.2 sunucusuna dağıtılan bir kulak uygulaması (ejb ve web uygulaması içerir) için log4j2 (sürüm 2.5) aracılığıyla slf4j kullanıyorum. olduğunuLog4j2, Wildfly'de nasıl çalışır 8.2

<dependencyManagement> 
    <dependencies> 
     <!-- SLF4J --> 
     <dependency> 
      <groupId>org.slf4j</groupId> 
      <artifactId>slf4j-api</artifactId> 
      <version>${slf4j-version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-bom</artifactId> 
      <version>${log4j2-version}</version> 
      <scope>import</scope> 
      <type>pom</type> 
     </dependency> 
     ... 
    </dependencies> 
</dependencyManagement> 

Ve modüllerin pom.xml:

<dependencies> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-slf4j-impl</artifactId> </dependency> <dependency> <groupId>org.apache.logging.log4j</groupId> <artifactId>log4j-core</artifactId> </dependency> ... </dependencies> 

Sonra içine log4j2.xml yerleştirilen gibi ebeveyn POM nasıl göründüğü

kulağın META-INF klasörü

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration status="DEBUG"> 
    <Appenders> 
     <File name="FileLogger" fileName="app-simple.log"> 
      <PatternLayout pattern="%d{HH:mm:ss} [%t] %-5level %logger{3} - %m%n"/> 
     </File> 
    </Appenders> 
    <Loggers> 
     <Root level="DEBUG"> 
      <AppenderRef ref="FileLogger"/> 
     </Root> 
    </Loggers> 
</Configuration> 

Tüm bunlar ve uygulama dağıtıldıktan sonra, hiçbir şey gerçekten olmadı, hata yok, günlük dosyası oluşturulmadı,

Wildfly kayıt alt sistemi bununla etkileşime girebileceğini düşündüm. Bu yüzden Wildfly günlüğe kaydetme

<?xml version="1.0" encoding="UTF-8"?> 
<jboss-deployment-structure> 
    <deployment> 
     <exclude-subsystems> 
      <subsystem name="logging"/> 
     </exclude-subsystems> 
    </deployment> 
</jboss-deployment-structure> 

dışlamak için META-INF klasöründeki jboss-dağıtım-structure.xml eklendi ve sonra aşağıdaki hata var.

15:07:20,648 ERROR [stderr] (MSC service thread 1-5) ERROR StatusLogger No log4j2 configuration file found. Using default configuration: logging only errors to the console. 

Bu post Yanlış bir şey log4j2 versiyonu olabileceğini düşündüm yanıta göre, aynı hata hakkında konuşurken buldum, bu yüzden 2.0.1 sürümünü bozmak ve sonra şikayet etmedi ancak yapılandırma dosyası hakkında bu yeni hata verdi: Ayrıca, bu post göre

16:57:38,456 ERROR [stderr] (MSC service thread 1-5) ERROR StatusLogger Could not search jar file 'C:\Servers\wildfly-8.2.0.Final\standalone\deployments\test-ear.ear\lib\log4j-core.jar\org\apache\logging\log4j\core' for classes matching criteria: annotated with @Plugin file not found java.io.FileNotFoundException: C:\Servers\wildfly-8.2.0.Final\standalone\deployments\test-ear.ear\lib\log4j-core.jar\org\apache\logging\log4j\core (The system cannot find the path specified) 

, Wildfly içinde log4j2 bir sorun olabilir, bu yüzden log4j2 sürümü ve yapılandırma, ancak hiçbir şans etrafında çimdik çalıştı.

Wildfly8'deki log4j2'yi nasıl kurabilirim, herkes yardımcı olabilir. Şimdiden çok teşekkürler.

+0

Merak etme neden slf4j log4j2 ile? Slf4j'nin noktası, hangi günlük yöneticisinin kullanıldığı hakkında endişelenmek zorunda değildir. –

+0

@Simon bunun için herhangi bir çözüm var mı? – Nick

cevap

0

EAR'nin META-INF klasörünün sınıf yolunda bulunmadığına dair tüm belgelerden, Log4j 2 orada yerleştirilmiş bir yapılandırma dosyası bulamayacak. Bulduğum tek belge, ortak yapılandırma dosyalarının yerleştirilebileceği bir modül oluşturmak zorunda olduğudur.

+0

Aslında yazımda bahsettiğim gibi, log4j2.xml kulağın META-INF klasörüne yerleştirilir. Log4j 2 onu bulmakta sorun yaşamaz. Log4j 2'den log4j 1.2'ye, aynı yerde bulunan log4j.xml veya log4j.properties yapılandırma dosyası ile değiştirildiysem, hiç problem yaşamadım ve proje düzgün bir şekilde kayıt olabilir. –