日誌記錄
Spring MVC 中的 DEBUG 級別日誌旨在緊湊、最小化且對人友好。它側重於重複使用的高價值資訊片段,而不是僅在除錯特定問題時才有用的資訊。
TRACE 級別日誌通常遵循與 DEBUG 相同的原則(例如,也不應是日誌洪水),但可用於除錯任何問題。此外,一些日誌訊息在 TRACE 和 DEBUG 級別可能顯示不同程度的詳細資訊。
良好的日誌記錄來源於使用日誌的經驗。如果您發現任何不符合所述目標的地方,請告知我們。
敏感資料
DEBUG 和 TRACE 日誌可能記錄敏感資訊。這就是為什麼請求引數和請求頭預設被遮蔽,並且必須透過 DispatcherServlet
上的 enableLoggingRequestDetails
屬性顯式啟用完全日誌記錄的原因。
以下示例展示瞭如何透過 Java 配置來實現這一點
-
Java
-
Kotlin
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")
}
}