LoggingFilter

로깅 필터. POST/PUT 요청 본문 로깅.

클래스 정의

@Order(2)
@Component
class LoggingFilter : CommonsRequestLoggingFilter()

설정

설정
Order2 (MDCFilter 이후)
includeClientInfofalse
includeQueryStringtrue
includePayloadINFO 레벨 이상
maxPayloadLength5120

제외 경로

val excludePaths = listOf("/health", "/webjars", "/swagger", "/csrf", "/v3/api-docs")

메서드

beforeRequest()

요청 전 처리. (비활성화 - Datadog에서 처리)

afterRequest()

override fun afterRequest(request: HttpServletRequest, message: String)

POST/PUT 요청 시 요청 본문 로깅.

shouldLog()

override fun shouldLog(request: HttpServletRequest): Boolean

excludePaths에 해당하지 않는 경로만 로깅.

포함 클래스: RestRequestLog

data class RestRequestLog(
    val body: String
) : Serializable

로깅용 요청 본문 DTO.

특징

  • @Order(2): MDCFilter 이후 실행
  • 구조화된 로깅: StructuredArguments 사용
  • 조건부 로깅: POST/PUT만 본문 로깅
  • 경로 필터링: 헬스체크 등 제외