feat: LoggingFilter에서 예외 방어 코드 추가

This commit is contained in:
이상진 2025-07-27 23:40:19 +09:00
parent 957996baf6
commit 021b2bae56

View File

@ -11,6 +11,7 @@ import org.springframework.stereotype.Component
import org.springframework.web.filter.OncePerRequestFilter import org.springframework.web.filter.OncePerRequestFilter
import org.springframework.web.util.ContentCachingRequestWrapper import org.springframework.web.util.ContentCachingRequestWrapper
import org.springframework.web.util.ContentCachingResponseWrapper import org.springframework.web.util.ContentCachingResponseWrapper
import java.nio.charset.StandardCharsets
private val log = KotlinLogging.logger {} private val log = KotlinLogging.logger {}
@ -54,12 +55,20 @@ class LoggingFilter(
if (log.isDebugEnabled()) { if (log.isDebugEnabled()) {
request.contentAsByteArray.takeIf { it.isNotEmpty() } request.contentAsByteArray.takeIf { it.isNotEmpty() }
?.let { payload["request_body"] = objectMapper.readValue(it, Map::class.java) } ?.let { payload["request_body"] = parseContent(it) }
response.contentAsByteArray.takeIf { it.isNotEmpty() } response.contentAsByteArray.takeIf { it.isNotEmpty() }
?.let { payload["response_body"] = objectMapper.readValue(it, Map::class.java) } ?.let { payload["response_body"] = parseContent(it) }
} }
log.info { objectMapper.writeValueAsString(payload) } log.info { objectMapper.writeValueAsString(payload) }
} }
private fun parseContent(content: ByteArray): Any {
return try {
objectMapper.readValue(content, Map::class.java)
} catch (_: Exception) {
String(content, StandardCharsets.UTF_8)
}
}
} }