Development/Spring Boot3 (Kotlin)

[Kotlin][SpringBoot3] customizing consol logging 방법

Tradgineer 2023. 9. 22. 13:47

 

1. 가장 추천하는 권장 방법 : SLF4J와 Logback 사용

 

 SLF4J (Simple Logging Facade for Java)는 로깅 추상화 인터페이스로, 실제 로깅 라이브러리의 구현체를 설정하여 사용합니다. Logback은 SLF4J의 구현 중 하나로, Spring Boot에서 기본적으로 사용되는 로깅 라이브러리입니다. 따라서 별도의 의존성 추가 없이 Spring Boot 프로젝트에서 사용 가능합니다.

 

    a. 예시1 : info

import org.slf4j.Logger
import org.slf4j.LoggerFactory
import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class MyController {
    private val logger: Logger = LoggerFactory.getLogger(MyController::class.java)

    @GetMapping("/example")
    fun exampleEndpoint() {
        logger.info("This is an example log message.")
    }
}

 

    b. 예시2 : info

import org.slf4j.Logger
import org.slf4j.LoggerFactory

val logger: Logger = LoggerFactory.getLogger(OpenexchangeRateDataScheduler::class.java)
logger.info("External Api worked: OpenExchangeRate")

2023-09-22T13:40:10.732+09:00  INFO 84969 --- [   scheduling-1] .d.k.e.f.s.OpenexchangeRateDataScheduler : External Api worked: OpenExchangeRate

 

    c. 예시3 : warn

logger.warn("This is a warning log message.") // 경고 레벨 메시지 출력

 

    d. 예시4 : error

logger.error("This is an error log message.") // 에러 레벨 메시지 출력

 

 

 

 

 

2. 덜 추천하는 방법 : System.out 사용

 

 System.out을 직접 사용하여 로그를 출력하는 방법도 있습니다. 이 방법은 간단하지만 로깅 라이브러리를 사용하는 것보다 로그 레벨 및 로깅 포맷에 대한 커스터마이징이 제한됩니다.

import org.springframework.web.bind.annotation.GetMapping
import org.springframework.web.bind.annotation.RestController

@RestController
class MyController {

    @GetMapping("/example")
    fun exampleEndpoint() {
        System.out.println("This is an example log message.")
    }
}