Spring MVC의 DEBUG 수준 로깅은 컴팩트하고 최소한이며 인간 친화적으로 설계되었습니다. 이는 특정 문제를 디버깅할 때만 유용한 다른 정보에 비해 계속해서 유용한 고가치 정보에 중점을 둡니다.
TRACE 수준 로깅은 일반적으로 DEBUG와 동일한 원칙을 따르지만(예를 들어 소방 호스도 아니어야 함) 모든 문제를 디버깅하는 데 사용할 수 있습니다. 또한 일부 로그 메시지는 TRACE와 DEBUG에서 서로 다른 수준의 세부정보를 표시할 수 있습니다.
좋은 로깅은 로그 사용 경험에서 비롯됩니다. 명시된 목표를 달성하지 못하는 부분을 발견하면 알려주시기 바랍니다.
DEBUG 및 TRACE 로깅은 민감한 정보를 기록할 수 있습니다. 이것이 요청 매개변수와 헤더가 기본적으로 마스크되어 있고 전체 로깅이 DispatcherServlet
의 enableLoggingRequestDetails
속성을 통해 명시적으로 활성화되어야 하는 이유입니다.
다음 예에서는 Java 구성을 사용하여 이를 수행하는 방법을 보여줍니다.
public class MyInitializer
extends AbstractAnnotationConfigDispatcherServletInitializer {
@Override
protected Class<?>[] getRootConfigClasses() {
return ... ;
}
@Override
protected Class<?>[] getServletConfigClasses() {
return ... ;
}
@Override
protected String[] getServletMappings() {
return ... ;
}
@Override
protected void customizeRegistration(ServletRegistration.Dynamic registration) {
registration.setInitParameter("enableLoggingRequestDetails", "true");
}
}