Java 在maven中关闭日志记录
我读过几篇关于关闭日志记录的文章。我在测试用例中使用了dbunit,大量的日志记录发生了,Travis CI构建失败了,因为日志太大了 简单地说,如何在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
<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>