spring-boot-starter 에는 SLF4J와 Logback이 기본으로 설정 돼있다.
*자세한 설명 생략
▷ SLF4J란?
- Simple Logging Facade 4 Java
- 다양한 Logging Framework를 하나의 방식으로 사용할 수 있는 방법을 제공
*Logging Framework : java.util.logging, logback, log4j
- Spring Boot는 SLF4J + Logback을 사용
*Logback : SLF4J의 구현체이자 Logging Library(log4j보다 더 좋은 성능)
▷ 기본 사용 방법
*Spring boot에서 아래 2가지 방법 중 선택해서 사용
① Logger객체 직접 생성
② @Slf4j(Lombok)
@Slf4j
@SpringBootApplication
public class TestApplication {
public static void main(String[] args) {
SpringApplication.run(TestApplication.class, args);
// @Slf4j(Lombok)
log.info("Hello @Slf4j info");
log.debug("Hello @Slf4j debug");
log.trace("Hello @Slf4j trace");
log.warn("Hello @Slf4j warn");
log.error("Hello @Slf4j error");
// LoggerFactory
Logger logger = LoggerFactory.getLogger(TestApplication.class);
logger.info("Hellow Logger info");
logger.debug("Hellow Logger debug");
logger.trace("Hellow Logger trace");
logger.warn("Hellow Logger warn");
logger.error("Hellow Logger error");
}
}
*SLF4J defalut logging level "INFO"
▷Log Level
TRACE < DEBUG < INFO < WARN < ERROR
① TRACE : DEBUG 보다 상세한 정보
② DEBUG : 프로그램을 디버깅하기 위한 정보
③ INFO : 상태 변경과 같은 정보
④ WARN : 처리가 가능한 문제, 향후 시스템 에러의 원인이 될 수 있는 경고성 메시지
⑤ Error : 요청을 처리하는 중 발생한 오류 정보
▷ Logback 기본 설정 방법
- Spring boot에서 아래 3가지 방법 중 선택해서 사용
*①,② 중복 설정 시 ① 적용
① application.properties
② resources / logback-spring.xml
*.xml은 직접 생성
③ resources / logback.xml
*Spring Boot에 대한 설정 전에 logback.xml이 설정되므로 제어할 수 없다.
① application.properties
## log Color
spring.output.ansi.enabled=always
## logging Level
logging.level.root=WARN
② resources / logback-spring.xml
<?xml version="1.0" encoding="UTF-8"?>
<configuration>
<!-- <property> : logback-spring.xml에서 사용될 변수 값 선언 -->
<!-- 로그 메세지 형식 -->
<!-- 로그 레벨 색상 설정 : %highlight([%-5level]) -->
<property name="LOG_MSG_PATTERN" value="%d{yyyy-MM-dd HH:mm:ss.SSS} %highlight([%-5level]) : %msg%n" />
<!-- <appender> : 로그 형태 설정 -->
<appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
<!-- <encoder> : 지정한 형식으로 표현 될 로그 메시지를 변환 -->
<encoder>
<!-- 위에서 선언한 변수 사용 -->
<pattern>${LOG_MSG_PATTERN}</pattern>
</encoder>
</appender>
<!-- <root> : 전역 설정 적용 -->
<!-- <logger> : 지역적으로 선언 가능(logger 설정이 default로 적용) -->
<root level="INFO">
<!-- <appender-ref> : 위에서 설정한 appender 적용 -->
<appender-ref ref="CONSOLE" />
</root>
</configuration>
▷ 참고
▷ 관련 글
'▶ Back-End > Java' 카테고리의 다른 글
SpringBoot + Cassandra 연동(Single Node) (0) | 2023.08.09 |
---|---|
Cassandra 설치 방법과 간단한 Node 분산 Test (0) | 2023.08.08 |
Custom Annotation 생성 Example (0) | 2023.07.26 |
SpringBoot Maria DB + MyBatis 설정 (0) | 2022.12.06 |
SpringBoot에서 MQTT Client + WebFlux 구축 (0) | 2022.12.02 |
댓글