Почему Spring INFO регистрирует стандартную ошибку?
-
26-09-2019 - |
Вопрос
У меня есть множество тестов интеграции БД, в которых для отката транзакций используются следующие аннотации:
@RunWith(SpringJUnit4ClassRunner.class)
@ContextConfiguration(locations={"classpath:ApplicationContext-DAOs.xml"})
@Transactional
Тесты проходят, но когда я их запускаю, Spring считает необходимым войти на уровне INFO в стандартную ошибку!Он регистрирует такие вещи, как:
19/11/2010 16:49:11 org.springframework.test.context.TestContextManager
retrieveTestExecutionListeners
INFO: @TestExecutionListeners is not present for class [class my.SomeDAOTest]:
using defaults.
etc for many, many lines ...
Где мне это отключить?
Решение
Вы можете скрыть это, используя log4j. В вашем log4j.xml установите логин на весну, чтобы предупредить (или ошибку).
<logger name="org.springframework">
<level value="warn"/>
</logger>
Другие советы
Ядро Spring использует ведение журнала Apache Commons.Чтобы отказаться от поведения по умолчанию (запись в stderr), мне пришлось использовать компонент моста для моей конкретной платформы.
Я использую Log4j2, поэтому, как только я добавил мост из Apache Commons в log4j2, ядро Spring уважало мои настройки.
<dependency>
<groupId>org.apache.logging.log4j</groupId>
<artifactId>log4j-jcl</artifactId>
<version>2.11.2</version>
</dependency>
Не связан с StackOverflow