6

を使用してテストを実行する場合maven、画面に出力を表示したいと思います。

log4j.xmlプロジェクトのディレクトリ(src / test / resources / cfg /)にを入れた後、次のpomように更新しました

235             <plugin>
236                 <groupId>org.apache.maven.plugins</groupId>
237                 <artifactId>maven-surefire-plugin</artifactId>
238                 <configuration>
239                     <skipTests>false</skipTests>
240                     <excludes>
241                         <exclude>**/*$*.java</exclude>
242                     </excludes>
243                         <systemProperties>
244                            <property>
245                               <name>-Dlog4j.configuration</name>
246                               <value>file:src/test/resources/cfg/log4j.xml</value>
247                            </property>
248                         </systemProperties>
249                     <additionalClasspathElements>
250                         <additionalClasspathElement>src/test/resources/cfg/</additionalClasspathElement>
251                     </additionalClasspathElements>
252                 </configuration>
253             </plugin>

上記は機能しません。テストを実行しても、次のメッセージが表示されます

log4j:WARN Please initialize the log4j system properly.

記録のために、以下はlog4jです

  1 <?xml version="1.0" encoding="UTF-8" ?>
  2 <!DOCTYPE log4j:configuration SYSTEM "log4j.dtd">
  3 
  4 <log4j:configuration xmlns:log4j="http://jakarta.apache.org/log4j/">
  5   <appender name="console" class="org.apache.log4j.ConsoleAppender">
  6     <param name="Target" value="System.out"/>
  7     <layout class="org.apache.log4j.PatternLayout">
  8       <param name="ConversionPattern" value="%-5p %c{1} - %m%n"/>
  9     </layout>
 10   </appender>
 11 
 12   <root>
 13     <priority value ="debug" />
 14     <appender-ref ref="console" />
 15   </root>
 16 
 17 </log4j:configuration>

何が足りないのですか?

4

2 に答える 2

8

I have a couple of comments. First, I recommend that you put any test-related log4j, logback config files directly in src/test/resources. That way they are always added to the classpath and it just works.

However, if you need to put the files in src/test/resources/cfg and want to use the classpathelements, then heed the advice of the documentation

But, if you must, you can use the additionalClasspathElements element to add custom resources/jars to your classpath. This will be treated as an absolute file system path, so you may want use ${basedir} or another property combined with a relative path.

So try:

<additionalClasspathElement>${basedir}/src/test/resources/cfg/</additionalClasspathElement>
于 2012-11-15T21:19:20.663 に答える
-3

log4j:WARN Please initialize the log4j system properly.

log4jを使用する必要がない場合は、このメッセージを気にする必要はありません。

ただし、log4jが必要な場合は、<dependency>下に次のタグを追加してください<dependencies>

<dependency>
   <groupId>log4j</groupId>
   <artifactId>log4j</artifactId>
   <version>1.2.16</version>
</dependency>
于 2012-11-15T21:18:17.990 に答える