1

私はクラスを持っています:MyClass

private static final Log LOG = LogFactory.getLog(MyClass.class);

私のコードのどこかで私LOG.trace()LOG.isTraceEnabled()

そして、Junit4を使用するそのMyClassのテスト

テストはmaven(2.2.1)によって正常に実行され、他のログをログに記録します(log4j.xmlをlevel =に設定しましたINFO

しかし、maven 3.0.3に切り替えると、log4j.xmlがオーバーライドされるか、どこにあるべきかを示さず、すべてのレベルのデバッグが有効になります(デバッグ、トレースなど)。

Maven 2.2.1で機能するため、可能であればトレースロギングを無効にします。私ができるハッキーな方法があります、私は知っています、しかし私はこれがなぜ起こっているのか理解したいですか?

pom.xmlからの主要な依存関係のいくつか

<dependency>
   <groupId>commons-logging</groupId>
   <artifactId>commons-logging</artifactId>
   <version>1.1.1</version>
</dependency>
 <dependency>
   <groupId>junit</groupId>
   <artifactId>junit</artifactId>
   <version>4.8.2</version>
   <scope>test</scope>
</dependency>
<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.16</version>
</dependency>

<plugin>
  <groupId>org.apache.maven.plugins</groupId>
  <artifactId>maven-surefire-plugin</artifactId>
  <version>2.4.3</version>
</plugin>

テストは他のテストクラスで実行されます。(マルチモジュールプロジェクト)実行する mvn clean test -Dtest=MyClassTestと、ロギングが混乱することはありませんが、(すべてのテストに対して)mvn clean testを実行すると、ロギングは正常に機能しなくなります(これは、Maven 3の場合にのみ当てはまります)。

4

0 に答える 0