[#43] feat: logging filter 적용 진행중

- LoggingFilter 초기 설정(리팩토링 필요)
- logback-spring.xml 설정
- security filter order 설정값 지정
This commit is contained in:
beaniejoy
2023-04-13 01:59:51 +09:00
parent 30c92f18dd
commit 8107468562
3 changed files with 63 additions and 0 deletions

View File

@@ -0,0 +1,32 @@
package io.beaniejoy.dongnecafe.filter
import mu.KotlinLogging
import org.slf4j.MDC
import org.springframework.core.annotation.Order
import org.springframework.stereotype.Component
import org.springframework.web.filter.OncePerRequestFilter
import java.util.UUID
import javax.servlet.FilterChain
import javax.servlet.http.HttpServletRequest
import javax.servlet.http.HttpServletResponse
// TODO: 리팩토링 필요(logback-spring.xml 같이)
@Component
@Order(1)
class LoggingFilter: OncePerRequestFilter() {
private val log = KotlinLogging.logger {}
override fun doFilterInternal(
request: HttpServletRequest,
response: HttpServletResponse,
filterChain: FilterChain,
) {
val requestId = UUID.randomUUID().toString().substring(0, 8)
MDC.put("request_id", requestId)
log.info{ "request_id = $requestId" }
filterChain.doFilter(request, response)
MDC.remove("request_id")
}
}

View File

@@ -14,6 +14,9 @@ spring:
devtools:
livereload:
enabled: false # no use devtools' LiveReload Server
security:
filter:
order: 10
logging:
level:

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<include resource="org/springframework/boot/logging/logback/defaults.xml"/>
<include resource="org/springframework/boot/logging/logback/console-appender.xml"/>
<!-- pattern -->
<property name="LOG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %clr(%5level) [%15.15t] [%X{request_id}] %clr(%-40.40logger{39}){cyan} : %m%n%wEx"/>
<!-- Console Appender -->
<appender name="stdout" class="ch.qos.logback.core.ConsoleAppender">
<encoder class="ch.qos.logback.classic.encoder.PatternLayoutEncoder">
<pattern>${LOG_PATTERN}</pattern>
</encoder>
</appender>
<springProfile name="local">
<logger additivity="false" level="INFO" name="io.beaniejoy.dongnecafe">
<appender-ref ref="stdout"/>
</logger>
<logger additivity="false" level="INFO" name="io.beaniejoy.dongnecafe.DongneServiceApiApplicationKt">
<appender-ref ref="CONSOLE"/>
</logger>
<root level="INFO">
<appender-ref ref="CONSOLE"/>
</root>
</springProfile>
</configuration>