사실이 아니라 공부한 내용과 생각을 정리한 글입니다. 언제든 가르침을 주신다면 감사하겠습니다.
자프링 환경에서 로깅을 위해 대표적으로 SLF4J를 사용하는데, lombok 어노테이션 중 @Slf4j를 사용하면 편리하게 로깅 관련 코드를 작성할 수 있다.
하지만 코틀린에서는 lombok 사용은 지양하고 있는 것 같다.
그렇다면, 코프링 환경에서 로깅은 어떤 형태로 구현할 수 있을까?
아래 링크에 설명이 잘 나와 있다
https://blog.leocat.kr/notes/2021/11/04/kotlin-logging-in-kotlin
기존 자프링의 @Slf4j 방식은 로깅을 위해 메서드 파라미터로 직접 값을 넘겨주는 방식이었다.
따라서 잘못 작성될 시 로깅 레벨에 따라 불필요하게 문자열 연산이 반복될 수 있고, 불필요한 if 문이 들어가 코드의 가독성을 해칠 수 있었다.
kotlin-logging 은 람다를 사용하여 코드의 간결성과 효율성을 둘 다 챙겼다.
아래와 같이 람다를 넘기도록 작성하면
val logger = KotlinLogging.logger {}
@Test
fun contextLoads() {
logger.info {"테스트"}
}
내부적으로 로깅 레벨을 확인 후 필요할 때만 메서드를 호출해 준다
override fun info(msg: () -> Any?) {
if (isInfoEnabled) info(msg.toStringSafe())
}
'kotlin' 카테고리의 다른 글
[Kotlin in Action] 5장: 람다로 프로그래밍 (0) | 2023.03.05 |
---|---|
[Kotlin in Action] 4장: 클래스, 객체, 인터페이스 (0) | 2023.02.11 |
[Kotlin in Action] 3장: 함수의 정의와 호출 (0) | 2023.02.08 |
[Kotlin in Action] 2장: 코틀린 기초 (0) | 2023.01.14 |
[kotlin-tip] kotlin 에서 jpa entity 작성하기 (0) | 2023.01.12 |
댓글