Java 在maven中关闭日志记录

Java 在maven中关闭日志记录,java,maven,logging,Java,Maven,Logging,我读过几篇关于关闭日志记录的文章。我在测试用例中使用了dbunit,大量的日志记录发生了,Travis CI构建失败了,因为日志太大了 简单地说,如何在maven中关闭日志记录 嗨,我的冲浪插件有这个: <groupId>org.apache.maven.plugins</groupId> <artifactId>maven-surefire-plugin</artifactId> <versi

我读过几篇关于关闭日志记录的文章。我在测试用例中使用了dbunit,大量的日志记录发生了,Travis CI构建失败了,因为日志太大了

简单地说,如何在maven中关闭日志记录

嗨,我的冲浪插件有这个:

        <groupId>org.apache.maven.plugins</groupId>
        <artifactId>maven-surefire-plugin</artifactId>
        <version>2.15</version>
        <configuration>
          <systemProperties>
            <property> 
              <name>java.util.logging.config.file</name>
              <value>src/test/resources/logging.properties</value>
            </property>
          </systemProperties>
但是,当我运行mvn验证时:

18:57:06.121 [main] DEBUG org.dbunit.dataset.AbstractTable - getColumnIndex(columnName=cohort_definition_id) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.AbstractTableMetaData - getColumnIndex(columnName=cohort_definition_id) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.datatype.IntegerDataType - getSqlValue(column=1, resultSet=org.postgresql.jdbc.PgResultSet@3ad98a3) - start
18:57:06.121 [main] DEBUG org.dbunit.database.ForwardOnlyResultSetTable - getValue(row=4, columnName=subject_id) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.AbstractTable - getColumnIndex(columnName=subject_id) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.AbstractTableMetaData - getColumnIndex(columnName=subject_id) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.datatype.BigIntegerDataType - getSqlValue(column=2, resultSet=org.postgresql.jdbc.PgResultSet@3ad98a3) - start
18:57:06.121 [main] DEBUG org.dbunit.database.ForwardOnlyResultSetTable - getValue(row=4, columnName=cohort_start_date) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.AbstractTable - getColumnIndex(columnName=cohort_start_date) - start
18:57:06.121 [main] DEBUG org.dbunit.dataset.AbstractTableMetaData - getColumnIndex(columnName=cohort_start_date) - start
18:57:06.122 [main] DEBUG org.dbunit.dataset.datatype.DateDataType - getSqlValue(column=3, resultSet=org.postgresql.jdbc.PgResultSet@3ad98a3) - start
18:57:06.122 [main] DEBUG org.dbunit.database.ForwardOnlyResultSetTable - getValue(row=4, columnName=cohort_end_date) - start
18:57:06.122 [main] DEBUG org.dbunit.dataset.AbstractTable - getColumnIndex(columnName=cohort_end_date) - start
18:57:06.122 [main] DEBUG org.dbunit.dataset.AbstractTableMetaData - getColumnIndex(columnName=cohort_end_date) - start
18:57:06.122 [main] DEBUG org.dbunit.dataset.datatype.DateDataType - getSqlValue(column=4, resultSet=org.postgresql.jdbc.PgResultSet@3ad98a3) - start
18:57:06.122 [main] DEBUG org.dbunit.database.ForwardOnlyResultSetTable - getValue(row=5, columnName=cohort_definition_id) - start

我没有使用pom中的任何其他特殊库进行日志记录。 这是一个共享的代码库,因此不符合“惯例”,这确实有spring工件installeld,我不知道这些家伙是否在我不知道的情况下“注入”日志记录:

    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-test</artifactId>
      <version>1.5.20.RELEASE</version>
      <scope>test</scope>
    </dependency>
    <dependency>
      <groupId>org.springframework.boot</groupId>
      <artifactId>spring-boot-starter-jdbc</artifactId>
      <version>1.5.20.RELEASE</version>
      <scope>test</scope>
    </dependency>


org.springframework.boot
弹簧起动试验
1.5.20.发布
测试
org.springframework.boot
弹簧靴启动器jdbc
1.5.20.发布
测试
任何帮助都将不胜感激

谢谢大家!

更新2019-12-20:
我在dbunit中记录日志的类中设置了一个断点,它似乎使用了logback(LoggerContext是ch.qos.logback.classic)。因此,我认为这里的解决方案是找出如何为logback指定配置…

好的,解决方案是了解正在使用的记录器,然后为其提供正确的配置

在我的情况下,它是logback

我将logback-test.xml文件放在我的test/resources文件夹中:

<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>

%d{HH:mm:ss.SSS}[%thread]-5级别%logger{36}-%msg%n
所有调试消息都消失了!我需要自学如何为我的构建指定显式日志实现,但我希望这些信息对其他人有用


感谢所有提出意见和想法的人。非常感谢。

spring默认情况下不使用
java.util.logging
。请参阅。仅将spring依赖项(测试?)添加到maven POM是否使其成为spring应用程序?这只是一个简单的JAR库…它不使用bean或任何东西。这只是一堆java类。DBUnit使用SLF4J进行日志记录。SLF4J可以使用多个后端;设置中使用哪一个取决于您在类路径中放置的内容。Maven设置中有哪些SLF4J依赖项?我没有直接声明SLF4J,但是查看IDE中的“测试依赖项”:我有se SLF4J-api-1.7.28.jar。所以,这是从某个地方拉进来的(可能是春季启动)。而且,看起来logback核心是一个dpeendency,但也是log4j-over-slf4j…天哪,这太令人困惑了。我不知道哪个日志提供商正在激活。
<configuration>
  <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
    <!-- encoders are assigned the type
         ch.qos.logback.classic.encoder.PatternLayoutEncoder by default -->
    <encoder>
      <pattern>%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n</pattern>
    </encoder>
  </appender>

  <root level="info">
    <appender-ref ref="STDOUT" />
  </root>
</configuration>