El registro en el nivel DEBUG en Spring MVC está diseñado para ser compacto, minimalista y amigable para los humanos. Se centra en fragmentos de información que tienen un valor particularmente alto y que se utilizan una y otra vez, a diferencia de otros que sólo se utilizan al depurar un problema específico.

El registro a nivel de TRACE generalmente sigue los mismos principios que DEBUG (y, por ejemplo, tampoco debe sobrecargarse), pero puede usarse para depurar cualquier problema. Además, algunos mensajes de registro pueden mostrar diferentes niveles de detalle en el nivel TRACE en comparación con el nivel DEBUG.

El registro adecuado depende de la experiencia en el uso de registros. Si nota algo que no cumple con nuestros objetivos establecidos, háganoslo saber.

Datos confidenciales

Puede utilizar el registro en los niveles DEBUG y TRACE para capturar información confidencial. Esta es la razón por la que los parámetros y encabezados de solicitud están enmascarados de forma predeterminada, y su registro completo debe habilitarse explícitamente a través de la propiedad enableLoggingRequestDetails para DispatcherServlet.

El siguiente ejemplo muestra cómo hacer esto usando la configuración de Java:

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");
    }
}
Kotlin
class MyInitializer : AbstractAnnotationConfigDispatcherServletInitializer() {
    override fun getRootConfigClasses(): Array<Class<*>>? {
        return ...
    }
    override fun getServletConfigClasses(): Array<Class<*>>? {
        return ...
    }
    override fun getServletMappings(): Array<String> {
        return ...
    }
    override fun customizeRegistration(registration: ServletRegistration.Dynamic) {
        registration.setInitParameter("enableLoggingRequestDetails", "true")
    }
}