2013-05-02 19 views
18

Log4j2を使用して、ファイルとコンソールにスプリングログを出力しようとしています。私はそれが私のLog4j2構成の問題だと思います。私はそれを働かせることができなかった。私は私のlog4j2.xmlファイルにこの設定を持っている:Log4j2を使用したSpringのロギング

<?xml version="1.0" encoding="UTF-8"?> 
<configuration name="defaultConfiguration" status="warn" strict="true" monitorInterval="5"> 
    <properties> 
     <property name="patternlayout">%d{ISO8601} [%t] %-5level %logger{36} - %msg%n%throwable{full}</property> 
     <property name="filename">${env:MY_ROOT}/logs/mylog.log</property> 
     <property name="filenamePattern">${env:MY_ROOT}/logs/mylog-%d{yyyy-dd-MM}-%i.log.gz</property> 
    </properties> 
    <appenders> 
     <appender name="Console" type="Console" target="SYSTEM_OUT"> 
      <layout type="PatternLayout" pattern="${patternlayout}" /> 
     </appender> 
     <appender name="File" type="RollingFile" fileName="${filename}" filePattern="${filenamePattern}" bufferedIO="true" immediateFlush="true" 
     append="true"> 
      <layout type="PatternLayout" pattern="${patternlayout}" /> 
      <Policies> 
       <TimeBasedTriggeringPolicy /> 
       <SizeBasedTriggeringPolicy size="50 MB" /> 
      </Policies> 
      <DefaultRolloverStrategy max="30" /> 
     </appender> 
     <appender name="AsynchFile" type="asynch" blocking="true" bufferSize="128"> 
      <appender-ref ref="File" /> 
     </appender> 
    </appenders> 
    <loggers> 
     <root level="info"> 
      <appender-ref ref="Console" /> 
      <appender-ref ref="AsynchFile" /> 
     </root> 
     <logger name="org.springframework.beans"> 
      <appender-ref ref="Console" /> 
      <appender-ref ref="AsynchFile" /> 
     </logger> 
    </loggers> 
</configuration> 

これらは私が私のポンポンファイルを持っている依存関係は、(おそらくそれらのいくつかが必要とされていない)

<dependency> 
<groupId>org.slf4j</groupId> 
<artifactId>slf4j-api</artifactId> 
<version>1.6.6</version> 
</dependency> 

<dependency> 
<groupId>org.slf4j</groupId> 
<artifactId>slf4j-log4j12</artifactId> 
<version>1.6.6</version> 
</dependency> 

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-api</artifactId> 
<version>2.0-beta5</version> 
</dependency> 

<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-core</artifactId> 
<version>2.0-beta5</version> 
</dependency> 
<dependency> 
<groupId>org.apache.logging.log4j</groupId> 
<artifactId>log4j-1.2-api</artifactId> 
<version>2.0-beta5</version> 
</dependency> 

<dependency> 
<groupId>com.lmax</groupId> 
<artifactId>disruptor</artifactId> 
<version>3.0.0.beta3</version> 
</dependency> 

私はありませんが私のJavaコードで春に関係する何かをする。 Apache CamelのMainクラスを使用しています。これは私の春の設定を読み込み、Beanを読み込みます。

私は間違っていますか?ありがとう!

編集:出力(コンソールまたはファイル)に春ログを取得していません。しかし、私は自分のJavaコードで作成したログを取得することができます。この明確化が役立つことを願っています。

答えて

15

あなたのpomの依存関係を見ると、次のようになります。slf4j-log4j12。これにより、slf4j apiに対するログステートメントがLog4j-1.2実装にルーティングされます。おそらくこれらをLog4j-2.0実装にルーティングすることをお勧めします。 slf4j-log4j12をlog4j-slf4j-implに置き換えて再試行できますか?

+0

私の記事を更新して、自分の問題についての詳細を知ることができます。お手伝いありがとう。 – hveiga

+0

今日まで私はあなたが答えを見ていない、私は申し訳ありません!私はそれを試すつもりです。私はあなたに知らせてくれるでしょう。答えてくれてありがとう。 – hveiga

+1

数ヶ月遅れましたが、うまくいきました!再度、感謝します。 – hveiga

19

スプリング使用の一般的なロギング1.Xによって引き起こされるこの問題は、あなたがこのログはLog4jの2にルーティングしたいので、もし、あなたがあなたのpom.xmlに

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-jcl</artifactId> 
    <version>2.1</version> 
</dependency> 

を依存関係を追加必要とするあなたを削除しないでくださいcommon-logging 1.Xの依存関係

+3

log4j-jclのバージョンが、使用されているlog4j2のバージョンと一致する必要がある、またはクラスの不一致の問題があることを追加することができます。 –

+0

これは私の春のロギングの問題を解決しました。ありがとう! –

関連する問題