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