kotlin-logging 을 사용하여 람다로 로그를 찍는 것이 성능이 초큼 더 좋습니다.
코틀린으로 최근 프로젝트를 진행하면서 리뷰받은 내용을 정리 해보았습니다.
// 람다는 나중에 실행됨
// INFO 로그를 찍을 수 있는지 판단 -> 람다 함수 실행 -> 문자열을 생성
log.info { "코틀린이 미래다 -> ${variable}" }
// 문자열을 만든다. INFO 로그를 찍을 수 있는지 판단
log.info("코틀린이 미래다 -> $variable")
// INFO 로그를 찍을 수 있는지 판단 -> 문자열 생성(치환)
log.info("코틀린이 미래다 -> {}", variable)
gradle 의존성 추가
dependencies {
implementation 'io.github.oshai:kotlin-logging-jvm:5.1.4'
}
fun main() {
logger.trace { "This is trace log" }
logger.debug { "This is debug log" }
logger.info { "This is info log" }
logger.warn { "This is warn log" }
logger.error { "This is error log" }
}
private val logger = KotlinLogging.logger {}
// 컴파일 후
// private val logger = LoggerFactory.getLogger("package.ClassName")
class UserService {
// ...
}
val logger = LoggerFactory.getLogger("package.ClassName") 코드가 생성됩니다.class UserService {
companion object: KLogging()
fun some() {
logger.debug { "this is logger" }
}
}
class UserService: KLoggable {
override val logger: KLogger = logger()
fun some() { logger.debug { "this is logger" } }
}
Reference
https://www.baeldung.com/kotlin/kotlin-logging-library
https://github.com/oshai/kotlin-logging