日志记录

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