Как установить уровень журнала без @springboottest?
Я решил написать "компонентный" тест без "@SpringBootTest". Столкнулся с проблемой, что некоторые настройки в application.yml не работают.
Я пытаюсь изменить уровень ведения журнала - не работает. Что я делаю неправильно?
TestdemoApplicationTests
@RunWith(SpringRunner.class)
@EnableConfigurationProperties
@ContextConfiguration(classes = TestConf.class, initializers = TestContextInitializer.class)
public class TestdemoApplicationTests {
@Test
public void logLevel() {
}
}
TestConf
@Configuration
public class TestConf {
}
TestContextInitializer
public class TestContextInitializer implements ApplicationContextInitializer<ConfigurableApplicationContext> {
@Override
public void initialize(ConfigurableApplicationContext applicationContext) {
try {
Resource resource = applicationContext.getResource("classpath:application.yml");
YamlPropertySourceLoader sourceLoader = new YamlPropertySourceLoader();
PropertySource<?> yamlTestProperties = sourceLoader.load("applicationProperties", resource, null);
applicationContext.getEnvironment().getPropertySources().addFirst(yamlTestProperties);
String[] profiles = applicationContext.getEnvironment().getProperty("spring.profiles.active").replaceAll(" ", "").split(",");
} catch (IOException e) {
throw new RuntimeException(e);
}
}
}
application.yml
spring:
profiles:
active: junit
logging:
level:
ROOT: INFO
springframework.web: INFO
hibernate: INFO
Посмотрите на мой скриншот (ожидаемый уровень журнала - информация, но фактический - отладка
PS Я понимаю, что мой вопрос может быть тривиальным, но прежде чем я его задал, я просмотрел много информации как в Google, так и в стеке. PSS Не используйте @SpringBootTest
1 ответ
Spring Test не регулируется настройками ведения журнала на уровне приложения. Вы должны поместить отдельный файл конфигурации logback в../test/resources/
В XML:
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/base.xml" />
<logger name="org.springframework" level="INFO"/>
</configuration>
Кстати, также необходимо указать полный пакет в вашем yml, например:
logging:
level:
org.springframework.web: INFO