generated from pricelees/issue-pr-template
<!-- 제목 양식 --> <!-- [이슈번호] 작업 요약 (예시: [#10] Gitea 템플릿 생성) --> ## 📝 관련 이슈 및 PR **PR과 관련된 이슈 번호** - #26 ## ✨ 작업 내용 <!-- 어떤 작업을 했는지 알려주세요! --> - actuator, micrometer tracing / datasource 추가 - 로그에 traceId, spanId 추가 - 로깅 방식 개선: 필터가 http 요청 기록 -> 컨트롤러 요청 / 응답은 AOP를 이용하여 기록 ## 🧪 테스트 <!-- 어떤 테스트를 생각했고 진행했는지 알려주세요! --> - 로그 메시지를 만들고, 마스킹하는 두 클래스에 대한 테스트 완료 - 전체 테스트 정상 통과 확인 ## 📚 참고 자료 및 기타 <!-- 참고한 자료, 또는 논의할 사항이 있다면 알려주세요! --> Reviewed-on: #27 Co-authored-by: pricelees <priceelees@gmail.com> Co-committed-by: pricelees <priceelees@gmail.com>
36 lines
1.2 KiB
Kotlin
36 lines
1.2 KiB
Kotlin
package roomescape.common.log
|
|
|
|
import com.fasterxml.jackson.databind.ObjectMapper
|
|
import org.springframework.boot.web.servlet.FilterRegistrationBean
|
|
import org.springframework.context.annotation.Bean
|
|
import org.springframework.context.annotation.Configuration
|
|
import org.springframework.context.annotation.DependsOn
|
|
import org.springframework.core.Ordered
|
|
import org.springframework.web.filter.OncePerRequestFilter
|
|
|
|
@Configuration
|
|
class LogConfiguration {
|
|
|
|
@Bean
|
|
@DependsOn(value = ["apiLogMessageConverter"])
|
|
fun filterRegistrationBean(
|
|
apiLogMessageConverter: ApiLogMessageConverter
|
|
): FilterRegistrationBean<OncePerRequestFilter> {
|
|
val filter = HttpRequestLoggingFilter(apiLogMessageConverter)
|
|
|
|
return FilterRegistrationBean<OncePerRequestFilter>(filter)
|
|
.apply { this.order = Ordered.HIGHEST_PRECEDENCE + 2 }
|
|
}
|
|
|
|
@Bean
|
|
@DependsOn(value = ["apiLogMessageConverter"])
|
|
fun apiLoggingAspect(apiLogMessageConverter: ApiLogMessageConverter): ControllerLoggingAspect {
|
|
return ControllerLoggingAspect(apiLogMessageConverter)
|
|
}
|
|
|
|
@Bean
|
|
fun apiLogMessageConverter(objectMapper: ObjectMapper): ApiLogMessageConverter {
|
|
return ApiLogMessageConverter(objectMapper)
|
|
}
|
|
}
|