generated from pricelees/issue-pr-template
refactor: Filter의 마무리 단계에서 현재의 Trace Context 초기화를 위한 CurrentTraceContext 추가
This commit is contained in:
parent
da81474ff4
commit
20d638da0b
@ -4,6 +4,7 @@ import com.fasterxml.jackson.databind.ObjectMapper
|
|||||||
import com.sangdol.common.web.asepct.ControllerLoggingAspect
|
import com.sangdol.common.web.asepct.ControllerLoggingAspect
|
||||||
import com.sangdol.common.web.servlet.HttpRequestLoggingFilter
|
import com.sangdol.common.web.servlet.HttpRequestLoggingFilter
|
||||||
import com.sangdol.common.web.support.log.WebLogMessageConverter
|
import com.sangdol.common.web.support.log.WebLogMessageConverter
|
||||||
|
import io.micrometer.tracing.CurrentTraceContext
|
||||||
import org.springframework.boot.web.servlet.FilterRegistrationBean
|
import org.springframework.boot.web.servlet.FilterRegistrationBean
|
||||||
import org.springframework.context.annotation.Bean
|
import org.springframework.context.annotation.Bean
|
||||||
import org.springframework.context.annotation.Configuration
|
import org.springframework.context.annotation.Configuration
|
||||||
@ -17,9 +18,10 @@ class WebLoggingConfig {
|
|||||||
@Bean
|
@Bean
|
||||||
@DependsOn(value = ["webLogMessageConverter"])
|
@DependsOn(value = ["webLogMessageConverter"])
|
||||||
fun filterRegistrationBean(
|
fun filterRegistrationBean(
|
||||||
webLogMessageConverter: WebLogMessageConverter
|
webLogMessageConverter: WebLogMessageConverter,
|
||||||
|
currentTraceContext: CurrentTraceContext
|
||||||
): FilterRegistrationBean<OncePerRequestFilter> {
|
): FilterRegistrationBean<OncePerRequestFilter> {
|
||||||
val filter = HttpRequestLoggingFilter(webLogMessageConverter)
|
val filter = HttpRequestLoggingFilter(webLogMessageConverter, currentTraceContext)
|
||||||
|
|
||||||
return FilterRegistrationBean<OncePerRequestFilter>(filter)
|
return FilterRegistrationBean<OncePerRequestFilter>(filter)
|
||||||
.apply { this.order = Ordered.HIGHEST_PRECEDENCE + 2 }
|
.apply { this.order = Ordered.HIGHEST_PRECEDENCE + 2 }
|
||||||
|
|||||||
@ -5,6 +5,7 @@ import com.sangdol.common.utils.MdcStartTimeUtil
|
|||||||
import com.sangdol.common.web.support.log.WebLogMessageConverter
|
import com.sangdol.common.web.support.log.WebLogMessageConverter
|
||||||
import io.github.oshai.kotlinlogging.KLogger
|
import io.github.oshai.kotlinlogging.KLogger
|
||||||
import io.github.oshai.kotlinlogging.KotlinLogging
|
import io.github.oshai.kotlinlogging.KotlinLogging
|
||||||
|
import io.micrometer.tracing.CurrentTraceContext
|
||||||
import jakarta.servlet.FilterChain
|
import jakarta.servlet.FilterChain
|
||||||
import jakarta.servlet.http.HttpServletRequest
|
import jakarta.servlet.http.HttpServletRequest
|
||||||
import jakarta.servlet.http.HttpServletResponse
|
import jakarta.servlet.http.HttpServletResponse
|
||||||
@ -15,7 +16,8 @@ import org.springframework.web.util.ContentCachingResponseWrapper
|
|||||||
private val log: KLogger = KotlinLogging.logger {}
|
private val log: KLogger = KotlinLogging.logger {}
|
||||||
|
|
||||||
class HttpRequestLoggingFilter(
|
class HttpRequestLoggingFilter(
|
||||||
private val messageConverter: WebLogMessageConverter
|
private val messageConverter: WebLogMessageConverter,
|
||||||
|
private val currentTraceContext: CurrentTraceContext
|
||||||
) : OncePerRequestFilter() {
|
) : OncePerRequestFilter() {
|
||||||
override fun doFilterInternal(
|
override fun doFilterInternal(
|
||||||
request: HttpServletRequest,
|
request: HttpServletRequest,
|
||||||
@ -32,9 +34,12 @@ class HttpRequestLoggingFilter(
|
|||||||
try {
|
try {
|
||||||
filterChain.doFilter(cachedRequest, cachedResponse)
|
filterChain.doFilter(cachedRequest, cachedResponse)
|
||||||
cachedResponse.copyBodyToResponse()
|
cachedResponse.copyBodyToResponse()
|
||||||
|
} catch (e: Exception) {
|
||||||
|
throw e
|
||||||
} finally {
|
} finally {
|
||||||
MdcStartTimeUtil.clear()
|
MdcStartTimeUtil.clear()
|
||||||
MdcPrincipalIdUtil.clear()
|
MdcPrincipalIdUtil.clear()
|
||||||
|
currentTraceContext.maybeScope(null)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user