Logging

Spring MVC 的 DEBUG 级日志被设计成紧凑、简约和人性化的。它专注于高价值的信息,这些信息可以反复使用,而其他信息只有在调试特定问题时才有用。

TRACE 级别的日志通常遵循与 DEBUG 相同的原则(例如,也不应该是一条消防水管),但可以用于调试任何问题。此外,一些日志信息在 TRACE 与 DEBUG 下可能会显示不同的细节水平。

好的日志来自于使用日志的经验。如果你发现任何不符合既定目标的地方,请让我们知道。

敏感数据

Sensitive Data

DEBUG 和 TRACE 日志可能会记录敏感信息。这就是为什么请求参数和头信息在默认情况下是被屏蔽的,必须通过 DispatcherServlet 上的enableLoggingRequestDetails属性明确启用它们的全部日志。

下面的例子显示了如何通过使用 Java 配置来做到这一点:

  1. public class MyInitializer
  2. extends AbstractAnnotationConfigDispatcherServletInitializer {
  3. @Override
  4. protected Class<?>[] getRootConfigClasses() {
  5. return ... ;
  6. }
  7. @Override
  8. protected Class<?>[] getServletConfigClasses() {
  9. return ... ;
  10. }
  11. @Override
  12. protected String[] getServletMappings() {
  13. return ... ;
  14. }
  15. @Override
  16. protected void customizeRegistration(ServletRegistration.Dynamic registration) {
  17. registration.setInitParameter("enableLoggingRequestDetails", "true");
  18. }
  19. }