日志记录
在Spring MVC中,调试级别的日志记录旨在做到简洁、精简且易于阅读。它侧重于那些能够反复使用的有价值信息,而不是那些仅在调试特定问题时才有用的信息。
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")
}
}