2017-10-31 1 views
1

私はITのテストを導くためにSpringRunnerクラスを使用しています:春 - SpringJUnit4ClassRunnerはまだ2の代わりにLOG4J 1を使用していますか?

@ContextConfiguration(loader = AnnotationConfigContextLoader.class, classes = MyTestConfiguration.class) 
@RunWith(SpringRunner.class) 
class SomeTestIT { 
    // tests here 
} 

@Configuration 
public class MyTestConfiguration { 
} 

私はlog4j2に対して次のMavenの依存関係を持っている:

<dependencyManagement> 
    <dependencies> 
     <dependency> 
      <groupId>org.apache.logging.log4j</groupId> 
      <artifactId>log4j-bom</artifactId> 
      <version>2.9.1</version> 
      <type>pom</type> 
      <scope>import</scope> 
     </dependency> 

<dependencies> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-api</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.apache.logging.log4j</groupId> 
     <artifactId>log4j-core</artifactId> 
    </dependency> 
    <dependency> 
     <groupId>org.springframework</groupId> 
     <artifactId>spring-test</artifactId> 
     <version>5.0.1.RELEASE</version> 
     <scope>test</scope> 
    </dependency> 

log4j2.xmlは、次のようになります。

<?xml version="1.0" encoding="UTF-8"?> 
<Configuration strict="true" monitorInterval="30" status="error"> 
    <Appenders> 
     <Console name="Console" target="SYSTEM_OUT"> 
      <PatternLayout pattern="%5p | %d | %F | %L | %m%n"/> 
     </Console> 
    </Appenders> 
    <Loggers> 
     <Root level="error"> 
      <AppenderRef ref="Console"/> 
     </Root> 
    </Loggers> 
</Configuration> 

私はこれをsrc/test/resourcesに入れたlog4j2.xmlです。

さて、テストが実行されているとき、私は次の警告を得る:

log4j:WARN No appenders could be found for logger (org.springframework.test.context.junit4.SpringJUnit4ClassRunner). 
log4j:WARN Please initialize the log4j system properly. 
log4j:WARN See http://logging.apache.org/log4j/1.2/faq.html#noconfig for more info. 

私は見つけることができない何らかの理由で、私のlog4j2構成はSpringRunnerからloggingsのために使用されていません。これをデバッグし、うまくいけばどうすればいいですか?

更新

私は、それが関連していると思いますが、念のいない:私はまた、依存関係を次のようしている。

<dependencies> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-api</artifactId> 
     <version>1.7.25</version> 
    </dependency> 
    <dependency> 
     <groupId>org.slf4j</groupId> 
     <artifactId>slf4j-log4j12</artifactId> 
     <version>1.7.25</version> 
    </dependency> 

答えて

1

これは、結合歳のlog4jです:

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

ここでslf4j-log4j12の状態は、log4jの上のslf4jになります。

あなたは

<dependency> 
    <groupId>org.apache.logging.log4j</groupId> 
    <artifactId>log4j-slf4j-impl</artifactId> 
    <version>2.9.1</version> 
</dependency> 

最新版への結合をごSLF4Jは2.9.1で更新する必要があります。 2.9.0より前のバージョンdoesn't matchあなたのSLF4J APIバージョン。

+0

私はそれを試してみます。クラスパスに 'org.slf4j:slf4j-api:1.7.25'を残すべきですか? – Jessy56

+0

はい。特にslf4jを自分で使うつもりならば。私はまだ春の依存関係を検証しようとしていますが、どのバージョンを使用しているのだろうかと思います。 –

+0

申し訳ありません。 5.0.1 –

関連する問題