跨多个 Spring 引导项目的通用请求日志记录 JAR

Common Request Logging JAR Across Multiple Spring Boot Projects

我正在尝试构建一个通用的请求日志记录 jar,它可以用作跨多个 Spring 引导项目的依赖项以实现标准化请求日志记录。

例子

将日志记录 jar 作为依赖项添加到项目 A 和 B 后,当控制器处理请求时,将生成以下日志消息:

url="/api/locations", requestMethod="GET", ip="192.168.1.23", userAgent="curl/7.35.0"

我正在尝试尽量减少或消除对项目 A 和 B 中任何实际代码更改的需要。

我需要实现一个拦截器来完成这个吗? SpringAOP?

听起来这里有几个主题。

  1. 共享配置。

我所做的是在 src/main/resources 下创建一个带有 logback-spring.xml 配置文件的 JAR。构建它(或任何适合您的配置)并将其作为您项目中的依赖项。

  1. 一致的日志记录。

在这里您可以将自己的 javax.servlet.Filter 实现为 spring 组件,或者使用 Spring 提供的 CommonsRequestLoggingFilter。将它实例化为 @Configuration class 中的 @Bean 然后就可以了。 注意:IIRC,这不会记录响应或请求主体。