Logging
Logging이란 애플리케이션의 로그를 기록하는 작업을 말하며 Spring에서는 주로 SLF4J(Simple Logging Facade for Java)와 Logback, Log4j와 같은 로깅 라이브러리를 주로 사용해 로그를 기록한다. 단순히 화면에 정보를 출력하는 sysout보다는 더 많은 기능을 제공하는 로깅 라이브러리로 로그를 기록하는 것이 더 좋은 방법이다.
아래는 SLF4J로 로그를 기록하는 코드이다.
import org.junit.jupiter.api.Test;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.mysql.cj.log.Slf4JLogger;
class LoggerTest {
Logger logger = LoggerFactory.getLogger(LoggerTest.class);
@Test
void test() {
logger.info("log를 남깁니다.");
logger.error("error log를 남깁니다.");
}
}
SLF4J는 로그를 중요도 혹은 메시지 종류에 따라 여러 개의 레벨로 구분한다. 로그를 레벨로 구분하고 로깅 설정을 해 필요한 로그의 레벨만 기록되도록 제어할 수 있다. 아래는 SLF4J의 로그 레벨이다.
- TRACE : 가장 상세한 정보를 담은 로그, 애플리케이션의 실행 과정에서의 매우 상세한 디버깅 로그로 사용됨
- DEBUG : 디버깅 로그
- INFO(Default) : 일반적인 정보를 담은 로그
- WARN : 경고 로그, 애플리케이션에 예기치 않은 상황이 발생했지만 심각한 문제는 아님
- ERROR : 오류 로그, 애플리케이션에 심각한 문제 발생
ERROR가 가장 상위 레벨의 로그이며, TRACE가 가장 하위 레벨의 로그이다.