Журналювання на рівні DEBUG у Spring MVC спроєктовано з урахуванням забезпечення компактності, мінімалізму та зручності для людини. Воно фокусується на бітах інформації, що мають особливо високе значення, застосовуються знову і знову, на відміну від інших, які застосовуються лише під час вирішення конкретної проблеми.

Ведення журналу на рівні TRACE загалом дотримується тих же принципів, що й DEBUG (і, наприклад, також не повинно бути перевантаженим), але може бути використане для вирішення будь-якої проблеми. До того ж, деякі повідомлення журналу можуть демонструвати різний рівень деталізації на рівні TRACE в порівнянні з DEBUG.

Належне журналювання залежить від використання журналів.

Конфіденційні дані

За допомогою журналювання на рівнях DEBUG та TRACE можна реєструвати конфіденційну інформацію. Саме тому параметри та заголовки запиту за замовчуванням маскуються, а їх повне журналювання має бути активовано явно через властивість enableLoggingRequestDetails для DispatcherServlet.

У цьому прикладі показано, як це зробити за допомогою конфігурації 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")
    }
}