日誌記錄
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")
}
}