2016-05-19 19 views
2

私は同様の質問を検索しましたが、答えのどれも問題を解決しませんでした。私はslf4j + log4j2(内部log4j2.xmlの設定はsrc/main/resources)を使うようにSpringブートアプリケーションを設定しました。私はこの戦争をJBoss EAP(6.4 & 7)に展開し、JBossの起動時のログトレースを見ることができます。問題は、log4j2アペンダがちょうどコンソールにもファイルでもない、何も印刷しないということです:のみJBossのログログが表示コンソールでJBoss EAP 6.4/7 - Springブートアプリケーションの内部log4j2.xml設定がコンソールに出力されない

  • ごとlog.info()の私Jbossロギングフォーマットを使用したアプリケーショントレース)。

  • c:\logs\out.logファイルは作成されますが、それには何も書き込まれません。

これらは私が行っているものです:

  1. 私はデバッグとすることを確認しているが、春ブーツのLog4J2LoggingSystem correctecty classpath:log4j2.xmlファイルで初期化されます。

  2. 私のアプリケーションはSLF4Jを使用しており、デバッグ中に私は、基礎となるロギング実装が代わりにLog4j2

  3. log4j2ロギングはTomcat上で正常に動作するのJBossのログであることを見てきました。

  4. standalone.xmlで私は<extension module="org.jboss.as.logging"/><subsystem xmlns="urn:jboss:domain:logging:3.0">ブロックを削除しました。これを実行すると、ほんの数のjbossトレースしかコンソールに表示されませんが、アプリケーションlog.info()では何も表示されませんが、log4j2ファイルアペンダは正しく出力されます。

コンソールとファイルでアプリケーションのlog4j2.xml印刷をサポートするようJBossを設定するにはどうすればよいですか?

log4j2.xml抜粋:私はslf4jLogger.info("SLF4J!!!");を実行する場合

org.slf4j.Logger slf4jLogger = org.slf4j.LoggerFactory.getLogger(PresupuestoController.class); 
org.apache.logging.log4j.Logger log4j2Logger = LogManager.getLogger(PresupuestoController.class); 

<Configuration status="WARN"> 
    <Appenders> 
     <Console name="console" target="SYSTEM_OUT"> 
      <PatternLayout ... 
     <RollingFile name="file" 
      filePattern="'.'%d{yyyy-MM-dd}" 
      fileName="c:\logs\out.log"> 
      <PatternLayout 
       pattern="%d{yyyy-MM-dd'T'HH:mm:ss.SSS} - %c{1.} %5p - %m%n" /> 
      <Policies> 
       <TimeBasedTriggeringPolicy /> 
      </Policies> 
     </RollingFile> 
    <Logger name="org.springframework" level="info" additivity="false"> 
     <AppenderRef ref="file" /> 
     <AppenderRef ref="console" /> 
    </Logger> 
</Configuration> 

UPDATE

問題は、JBossがSLF4Jの管理方法に関係しています。私はコードでSFL4Jを使用する必要が

11:19:03,668 INFO [stdout] (default task-2) 2016-05-19T11:19:03.663 c.m.w.SomeController INFO - LOG4J2!!! 

要件のように:私のlog4j2.xml構成以下

11:19:03,122 INFO [com.my.web.SomeController] (default task-2) SLF4J!!! 

を私はlog4j2Logger.info("LOG4J2!!!");を実行したときには、コンソールに出力します:それは、基礎となるJBossのロガーを印刷しますJBossの代わりにLog4j2を使用する方法が必要です。

答えて

3

は最終的にそれを働いたものです。この内容で私のWEB-INFフォルダにjboss-deployment-structure.xmlファイルを追加:

<jboss-deployment-structure> 
    <deployment> 
     <exclusions> 
      <module name='org.slf4j' /> 
      <module name='org.slf4j.impl' /> 
     </exclusions> 
    </deployment> 
</jboss-deployment-structure> 

今JBossのログには、作業し続けるだけでなく、私を可能に私のアプリケーションコードでSFL4J + Log4j2を使用する。 EARアプリケーション(春MVC)のために

+0

JBoss AS 7.1では私のために働かなかった。上記は唯一のことだと確信していますか?追加の手順を逃したことはありませんか? –

0

また、JBoss 6でlog4j2が動作するのに苦労しました。

あなたはWebアプリケーションを実行している場合、かなりのsrc /メイン/ webappの/ WEB-INF/log4j2.xml下のXML設定ファイルを置く

また、明らかにあなたは正しい依存関係を持っていることを確認し、 'WARN'に設定されているので、少なくともWARN/ERRORレベルを記録していることになります。ここでは、これで苦労した後

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-api</artifactId> 
    <version>2.1</version> 
</dependency> 
<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-core</artifactId> 
    <version>2.1</version> 
</dependency> 
<dependency> 
    <groupId>org.slf4j</groupId> 
    <artifactId>slf4j-api</artifactId> 
    <version>1.7.5</version> 
</dependency> 
+0

おかげで、私は質問を更新し、あると思われますSFL4Jに関連するもの... – codependent

1

は、私は、META-INFにこのJBossの-展開するstructure.xmlを入れていた:答えるため

<jboss-deployment-structure> 
    <deployment> 
     <exclude-subsystems> 
      <subsystem name="logging"/> 
     </exclude-subsystems> 
    </deployment> 
</jboss-deployment-structure> 
関連する問題