[Kotlin] @Slf4j를 대체해서 사용할 방법은?
찾게된 이유?
Java + Spring Boot로 개발하다보면 DTO, VO등의 Getter, Setter 작업등을 애노테이션을 근간으로 설정해주는 라이브러리인 Lombok을 사용한다.
그치만 아직 Kotlin에선 Lombok 컴파일러 플러그인의 대해 정상 작동을 보증하지 않는다.
그렇다면 로그를 위한 애노테이션인 @Slf4j를 사용하지 못하는 아쉬움이 존재한다.
본론부터 들어가자
inline fun <reified T> logger() : Logger = LoggerFactory.getLogger(T::class.java)
@Component
class CustomFilter : AbstractGatewayFilterFactory<Any?>() {
val log = logger<CustomFilter>()
override fun apply(config : Any?) : GatewayFilter {
return GatewayFilter { exchange, filter ->
val request = exchange.request
val response = exchange.response
log.info("Custom PRE Filter : request id -> ${request.id}")
chain
.filter(exchange)
.then(Mono.fromRunnable {
log.info("Custom POST Filter : response code -> ${response.statusCode}")
})
}
}
}
모르는 것들
-
reified가 무엇일까?
-
inline fun이 무엇일까?
-
이 문서 Kotlin : Inline functions 를 보고 공부합시다...
참조한 문서들
Kotlin : Lombok Compiler Plugin
Reddit : Slf4j loggers in 3 ways
Author And Source
이 문제에 관하여([Kotlin] @Slf4j를 대체해서 사용할 방법은?), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://velog.io/@hwang1995/Kotlin-Lombok의-Slf4j를-대체하기-위한-방법저자 귀속: 원작자 정보가 원작자 URL에 포함되어 있으며 저작권은 원작자 소유입니다.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)