|
对于最新稳定版本,请使用 Spring Framework 7.0.6! |
日志记录
Spring MVC 中的 DEBUG 级别日志设计得简洁、精炼且对人类友好。它聚焦于那些反复有用的重要信息,而非仅在调试特定问题时才有用的其他信息。
TRACE 级别的日志记录通常遵循与 DEBUG 相同的原则(例如,也不应产生大量冗余日志),但可用于调试任何问题。此外,某些日志消息在 TRACE 级别下可能会比在 DEBUG 级别下显示更详细的细节。
良好的日志记录源于使用日志的经验。如果您发现任何不符合所述目标的内容,请告知我们。
敏感数据
DEBUG 和 TRACE 日志记录可能会记录敏感信息。因此,请求参数和请求头默认会被屏蔽,若要完整记录这些信息,必须通过 enableLoggingRequestDetails 上的 DispatcherServlet 属性显式启用。
以下示例展示了如何通过使用 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")
}
}