Jam*_*sev 5 java log4j pom.xml maven
使用测试时maven
,我想在屏幕上看到输出.
把后log4j.xml
到我的项目的目录中(src /测试/资源/ 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>
Run Code Online (Sandbox Code Playgroud)
以上不起作用.测试运行时,我仍然看到以下消息
log4j:WARN Please initialize the log4j system properly.
Run Code Online (Sandbox Code Playgroud)
对于记录,以下是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>
Run Code Online (Sandbox Code Playgroud)
我错过了什么?
我有几点意见.首先,我建议您将任何与测试相关的log4j,logback配置文件直接放在src/test/resources中.这样它们总是被添加到类路径中,它只是起作用.
但是,如果您需要将文件放在src/test/resources/cfg中并希望使用classpatlelements,那么请注意文档的建议
但是,如果必须,可以使用additionalClasspathElements元素将自定义资源/ jar添加到类路径中.这将被视为绝对文件系统路径,因此您可能需要使用$ {basedir}或其他属性与相对路径相结合.
所以尝试:
<additionalClasspathElement>${basedir}/src/test/resources/cfg/</additionalClasspathElement>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
24689 次 |
最近记录: |