SpringBoot 3.3.0中如何开启enableLoggingRequestDetails打印请求体日志
解决方案:SpringBoot 3.3.0开启enableLoggingRequestDetails并打印请求体
1. 修正Servlet环境的配置项
你日志里出现的DispatcherServlet说明当前是Servlet栈应用,之前用的spring.codec.log-request-details是WebFlux框架的专属配置,对Servlet环境完全无效。正确开启enableLoggingRequestDetails的配置是:
server: servlet: logging: request-details: true
2. 调整日志级别输出详细请求
要让框架实际输出请求体、参数等细节,需要把DispatcherServlet的日志级别设为DEBUG,在配置文件中补充:
logging: level: org.springframework.web.servlet.DispatcherServlet: DEBUG # 可选:如果需要查看更完整的Web请求处理链路日志,可添加 org.springframework.web: DEBUG
3. 关于接口内DTO打印的补充
你已经在接口方法里通过System.out.println和logger.info打印BulkSetCollectionStatusDTO,如果这部分没输出预期内容,检查两点:
- 确认
BulkSetCollectionStatusDTO类已经正确重写了toString()方法,否则打印的会是对象内存地址 - 你的日志配置中
ROOT级别是INFO,logger.info应该能正常输出,若没看到可以检查日志输出路径或控制台配置
完整配置示例
server: servlet: logging: request-details: true logging: level: ROOT: INFO org.springframework.web.servlet.DispatcherServlet: DEBUG org.springframework.web: DEBUG
配置完成后重启应用,再次请求/bulkSetCollectionStatus接口,就能看到DispatcherServlet输出包含请求体的详细日志,同时你接口内的自定义日志也会正常打印DTO内容。
内容的提问来源于stack exchange,提问作者Nithin Tn
相关产品推荐
相关产品推荐

