@Component
class OncePerRequestFilterImpl : OncePerRequestFilter() {
override fun doFilterInternal(request: HttpServletRequest, response: HttpServletResponse, filterChain: FilterChain) {
MDC.put(MDCKey.TRANSACTION_ID.value, generateTransactionId())
filterChain.doFilter(request, response)
MDC.clear()
}
}
<message>
<pattern>
{"level":"%level", "class":"%logger{36}", "method":"%class{36}.%M", "transactionId":"%X{transactionId}", "thread":"%thread", "message":
"%message", "requestId": "%X{X-Request-ID}"}
</pattern>
</message>