2017-01-25 11 views
1

私はLog4jからLog4j2に移行中のSpringブートプロジェクトを持っています。私は文書hereの手順に従っています。具体的には、log4j.xmlをlog4j2標準に準拠するように変更し、log4j2.xmlという名前に変更しました。log4j2.xmlの<Configuration status="debug">設定を使用してlog4j2でデバッグを有効にしました。私の春ブーツアプリの起動時に、私は次のシステム設定を使用します。Log4JはまだLog4j2で動作しています

-Dlog4j.configurationFile = log4j2.xml -Dorg.jboss.logging.provider = log4j2

を私は見ることができますデバッグ出力のlog4j2.xml、アペンダを開始するなど、及び最終的なlog4j2メッセージは述べ:

ロギングプロバイダ:org.jboss.loggin.Log4j2LoggerProviderシステムプロパティを介して見出さ

私は次のjar使用しています:

コンパイルグループ: 'org.slf4j'、名前: 'SLF4J-log4j12'、バージョン: '1.7.12'

コンパイルグループ:「組織を'spring-boot-starter-log4j2'、名前: 'log4j-api'、バージョン: '2.4.1'

コンパイルグループ 'org.springframework.boot'、名前: 'spring-boot-starter-log4j2'バージョン: '1.4.0.RELEASE'

ただし、私はまだです

のlog4j:Log4jのからのメッセージを受けませアペンダをロガー log4jのために見つかりませんでしたWARN:WARN log4jのシステムを初期化してください適切 のlog4jは、だから私の基本的な質問です詳細

ためhttp://logging.apache.org/log4j/1.2/faq.html#noconfigを参照してくださいWARN log4jを止めてlog4j2だけを使用する方法は? log4j2からメッセージを受け取って、正しく設定したときに明示的に通知しますか? Log4j2を使用するために欠けている特別な構成はありますか?

+0

「spring-boot-starter-log4j2」以外のログの依存関係をすべて削除します。 –

答えて

1

これらの依存関係のみをlog4j2に使用する必要があります。

<dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-api</artifactId> 
      <version>${log4j2.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-core</artifactId> 
      <version>${log4j2.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-slf4j-impl</artifactId> 
      <version>${log4j.slf4j.impl.version}</version> 
     </dependency> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-web</artifactId> 
      <version>${log4j2.version}</version> 
      <scope>runtime</scope> 
     </dependency> 

また、spring-boot-starter-loggingをspring-bootから除外する必要があります。このように

0

Log4j2 FAQには、excluding conflicting dependenciesという項目があります。

私はあなたがこれを必要だと思う:

<dependencies> 
    <dependency> 
    <groupId>log4j</groupId> 
    <artifactId>log4j</artifactId> 
    <version>1.2.17</version> 
    <scope>provided</scope> 
    </dependency> 
</dependencies> 
0

私のプロジェクトでは、スプリングブーツでlog4j2使用しています。

以下はpom.xmlの一部です。試してみてください。

<dependencies> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter</artifactId> 
     <exclusions> 
      <exclusion> 
       <groupId>org.springframework.boot</groupId> 
       <artifactId>spring-boot-starter-logging</artifactId> 
      </exclusion> 
     </exclusions> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework.boot</groupId> 
     <artifactId>spring-boot-starter-log4j2</artifactId> 
    </dependency> 
</dependencies> 
関連する問題