Мы используем @SpringBootTest с атрибутом @Autowired private MockMvc mockMvc для имитации HTTP-запросов к нашим классам контроллеров.
По какой-то причине, которую мы не можем определить, это создает огромное количество журналов для каждого тестового примера и заполняет наши журналы тысячи строк текста, которые выглядят так:
build 18-May-2019 03:09:40 Async:
build 18-May-2019 03:09:40 Async started = false
build 18-May-2019 03:09:40 Async result = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 Resolved Exception:
build 18-May-2019 03:09:40 Type = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 ModelAndView:
build 18-May-2019 03:09:40 View name = null
build 18-May-2019 03:09:40 View = null
build 18-May-2019 03:09:40 Model = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 FlashMap:
build 18-May-2019 03:09:40 Attributes = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 MockHttpServletResponse:
build 18-May-2019 03:09:40 Status = 200
build 18-May-2019 03:09:40 Error message = null
build 18-May-2019 03:09:40 Headers = {X-Content-Type-Options=[nosniff], X-XSS-Protection=[1; mode=block], Cache-Control=[no-cache, no-store, max-age=0, must-revalidate], Pragma=[no-cache], Expires=[0], X-Frame-Options=[DENY]}
build 18-May-2019 03:09:40 Content type = null
build 18-May-2019 03:09:40 Body =
build 18-May-2019 03:09:40 Forwarded URL = null
build 18-May-2019 03:09:40 Redirected URL = null
build 18-May-2019 03:09:40 Cookies = []
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 MockHttpServletRequest:
build 18-May-2019 03:09:40 HTTP Method = POST
build 18-May-2019 03:09:40 Request URI = /api/v1/certification/applications
build 18-May-2019 03:09:40 Parameters = {}
build 18-May-2019 03:09:40 Headers = {Content-Type=[application/json;charset=UTF-8]}
build 18-May-2019 03:09:40 Body = {"applicationVersion":"1.0"}
build 18-May-2019 03:09:40 Session Attrs = {}
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 Handler:
build 18-May-2019 03:09:40 Type = <redacted>
build 18-May-2019 03:09:40 Method = <redacted>
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 Async:
build 18-May-2019 03:09:40 Async started = false
build 18-May-2019 03:09:40 Async result = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 Resolved Exception:
build 18-May-2019 03:09:40 Type = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 ModelAndView:
build 18-May-2019 03:09:40 View name = null
build 18-May-2019 03:09:40 View = null
build 18-May-2019 03:09:40 Model = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 FlashMap:
build 18-May-2019 03:09:40 Attributes = null
build 18-May-2019 03:09:40
build 18-May-2019 03:09:40 MockHttpServletResponse:
build 18-May-2019 03:09:40 Status = 200
build 18-May-2019 03:09:40 Error message = null
build 18-May-2019 03:09:40 Headers = {X-Content-Type-Options=[nosniff], X-XSS-Protection=[1; mode=block], Cache-Control=[no-cache, no-store, max-age=0, must-revalidate], Pragma=[no-cache], Expires=[0], X-Frame-Options=[DENY]}
build 18-May-2019 03:09:40 Content type = null
build 18-May-2019 03:09:40 Body =
build 18-May-2019 03:09:40 Forwarded URL = null
build 18-May-2019 03:09:40 Redirected URL = null
build 18-May-2019 03:09:40 Cookies = []
Весь мой поиск в Интернете и чтение документации Spring Boot Test оказались бесплодными. Где этот лог, и как мы можем его отключить?
Мы тщательно отсканировали наш код и уверены, что не печатаем и не несем за него ответственности.
@Sambit Нет, нигде в нашем проекте нет logback.xml (мы используем SLF4j с Log4j2), и mvn dependency:tree нашего проекта также не указывает никаких зависимостей журнала — прямых или транзитивных.
Если вы используете log4j2, в xml вы можете отключить ведение журнала из определенного пакета.
Я столкнулся с вашим вопросом, когда работал над аналогичная проблема, который вас также может заинтересовать, то есть тот же результат создается при сбое.




Вы должны отключить регистратор информации из пакета Spring Framework в application.properties. Добавьте указанное ниже свойство в application.properties.
logging.level.org.springframework=OFF
Это не будет работать, если @AutoConfigureMockMvc не настроен с print = MockMvcPrint.LOG_DEBUG. Более того, вы можете вместо этого отключить только org.springframework.test.web.servlet.result.
Это исходит от MockMvc.
Может показаться, что вы переопределили значение по умолчанию и указали Spring Boot всегда печатать вывод отладки для MockMvc.
Вы должны иметь возможность деактивировать это, объявив @AutoConfigureMockMvc(printOnlyOnFailure = true) или опустив флаг printOnlyOnFailure, поскольку true является значением по умолчанию.
Вы настраиваете режим вывода с помощью атрибута print, например, @AutoConfigureMockMvc(print = MockMvcPrint.NONE).
У вас есть файл logback.xml в вашем проекте?