LoggingFilter
로깅 필터. POST/PUT 요청 본문 로깅.
클래스 정의
@Order(2)
@Component
class LoggingFilter : CommonsRequestLoggingFilter()설정
| 설정 | 값 |
|---|---|
| Order | 2 (MDCFilter 이후) |
| includeClientInfo | false |
| includeQueryString | true |
| includePayload | INFO 레벨 이상 |
| maxPayloadLength | 5120 |
제외 경로
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): BooleanexcludePaths에 해당하지 않는 경로만 로깅.
포함 클래스: RestRequestLog
data class RestRequestLog(
val body: String
) : Serializable로깅용 요청 본문 DTO.
특징
- @Order(2): MDCFilter 이후 실행
- 구조화된 로깅: StructuredArguments 사용
- 조건부 로깅: POST/PUT만 본문 로깅
- 경로 필터링: 헬스체크 등 제외