2016-04-12 40 views
0

私は、wildfly 8.2サーバにデプロイされた耳のアプリケーション(ejbとWebアプリケーションを含む)にlog4j2(version 2.5)経由でslf4jを使用しています。Log4j2をWildfly 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> 

とモジュールの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> 

その後、私はにlog4j2.xmlを置い親POMがどのように見えるかだ

耳のMETA-INFフォルダ

<?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> 

これらのすべてとアプリケーションがデプロイされても、実際に何も起こりませんでした。エラーもログファイルも生成されませんでした。

Wildflyのログサブシステムが干渉する可能性があると考えました。だから私は

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

Wildflyのログを除外するために、META-INFフォルダに のjboss-展開するstructure.xmlを加えた後、私は次のエラーを得ました。

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. 

私はこのpostが、私はそれが何か間違ったことlog4j2バージョンかもしれないと思った回答に基づいて、同じエラーの話を見つけたので、私は2.0.1にバージョンをダウングレードし、それは文句を言いませんでしたしかし、設定ファイルについては、この新しいエラーました:また、このpostに応じ

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でlog4j2に何か問題があるかもしれませんが、私はlog4j2のバージョンと設定が、運の周りに微調整しようとしました。

Log4j2をWildfly8でセットアップする方法は誰にでも助けられます。ありがとうございます。

+0

なぜ、slf4jとlog4j2? slf4jのポイントは、どのログマネージャが使用されているか心配する必要はありません。 –

+0

@Simonはこれに対応していますか? – Nick

答えて

0

EARのMETA-INFフォルダがクラスパスにないため、Log4j 2はそこに配置されている設定ファイルを見つけられません。私が見つけることができる唯一のドキュメントは、共通の構成ファイルを置くことができるモジュールを作成する必要があります。

+0

実際に私が記事で述べたように、log4j2.xmlは耳のMETA-INFフォルダに置かれています。 log4j 2はそれを見つけるのに何の問題もないはずです。 log4j 2からlog4j 1.2に、同じlocactionでlog4j.xmlまたはlog4j.propertiesという設定ファイルを使用した場合、問題は全くなく、プロジェクトは正しくログに記録されます。 –

関連する問題