在maven surefire下记录级别

Dzh*_*zhu 24 junit maven-2 surefire

我无法调整java logging的日志记录级别.我正在使用maven surefire(mvn test),并试图从默认的INFO调整为例如FINEST.

我在src/test/resources/logging.properties下有logging.properties文件

在编译之后,我在target/test-classes下看到,我看到一个带有预期配置的logging.properties文件:

java.util.logging.ConsoleHandler.level = FINEST

javax.enterprise.system.container.ejb.level = FINE

...

但是来自glassfish的控制台输出只有INFO/SEVERE级别的消息.

我哪里做错了?或者这是与maven屁股的另一个痛苦?

ehr*_*ona 17

我尝试在MAVEN_OPTS环境变量中设置java.util.logging.config.file,这不起作用,但最终通过将该系统属性放在pom.xml中来实现它(当然在src /中创建了适当的logging.properties)测试/资源):

    <plugins>
      <plugin>
        <artifactId>maven-surefire-plugin</artifactId>
        <configuration>
           <systemProperties>
             <property> 
               <name>java.util.logging.config.file</name>
               <value>src/test/resources/logging.properties</value>
             </property>
           </systemProperties>
        </configuration>
      </plugin>
    </plugins>
Run Code Online (Sandbox Code Playgroud)

  • 在 maven 命令行上设置 `-Djava.util.logging.config.file` 对我来说不起作用,但这确实有效。 (2认同)
  • 因为 Surefire 插件不会将您传递给 Maven 的所有系统属性传播到实际单元测试执行器的命令行 (2认同)

小智 8

您需要在日志文件中指定处理程序

handlers = java.util.logging.ConsoleHandler, java.util.logging.FileHandler
Run Code Online (Sandbox Code Playgroud)

那它应该工作