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.")
}
}