기본적인 사용법 입니다.
java 에서 다르게 {}
을 사용하서 logger을 사용을 합니다.
logger.debug { "Some $expensive message!" }
디버그가 활성화 되지 않은 경우 비용이 많이들지 않기위해 isDebugEnabled
를 제공하기 때문에 사용해서 logger 을 사용을 하면 좋습니다.
if (logger.isDebugEnabled) logger.debug("Some $expensive message!")
클래스 이름을 명시적으로 지정을 안하고 사용이 가능합니다.
클래스의 내부에서 변수 혹은 클래스가 아닌 kt 파일내에서 변수를 만들어서 사용이 가능합니다.
private val logger = KotlinLogging.logger {}
클래스 이름을 명시적으로 사용을 하고 싶을 때에는 아래와 같이 사용을 해주면 됩니다.
val logger = LoggerFactory .getLogger( " package.ClassName " )
로그를 남길때 변수를 사용을 하고 싶다면 문자열에서 $ 혹은 + value 를 사용을 해서 로그를 남길 수 있습니다
logger.error(exception) { "a $fancy message about the $exception" }
build.gradle.kts
-> dependencies
에 logger 의존성을 추가해준다.
implementation("io.github.microutils:kotlin-logging-jvm:2.0.6")
확인을 위한 controller 을 만들어 줍니다.
아래의 코드의 경우 클래스 이름을 명시하지 않고 클래스 내부에 logger 변수를 만들어서 사용을 하였습니다.
@RestController
@RequestMapping("/api/hello")
class HelloResource {
private val logger = KotlinLogging.logger {}
@GetMapping("")
fun showByString(): String {
var message = "hello"
logger.info { "success >> ${message}" }
return message
}
}