日誌記錄

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")
	}
}