Журналювання на рівні DEBUG у Spring MVC спроєктовано з урахуванням забезпечення компактності, мінімалізму та зручності для людини. Воно фокусується на бітах інформації, що мають особливо високе значення, застосовуються знову і знову, на відміну від інших, які застосовуються лише під час вирішення конкретної проблеми.
Ведення журналу на рівні TRACE загалом дотримується тих же принципів, що й DEBUG (і, наприклад, також не повинно бути перевантаженим), але може бути використане для вирішення будь-якої проблеми. До того ж, деякі повідомлення журналу можуть демонструвати різний рівень деталізації на рівні TRACE в порівнянні з DEBUG.
Належне журналювання залежить від використання журналів.
Конфіденційні дані
За допомогою журналювання на рівнях DEBUG та TRACE можна реєструвати конфіденційну інформацію. Саме тому параметри та заголовки запиту за замовчуванням маскуються, а їх повне журналювання має бути активовано явно через властивість enableLoggingRequestDetails
для DispatcherServlet
.
У цьому прикладі показано, як це зробити за допомогою конфігурації 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");
}
}
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")
}
}
ПЕРЕЙДІТЬ В ПОВНУ ВЕРСІЮ