build.gradle에서
- Spring boot는 기본적으로 logback logging module을 제공하기 때문에 log4j2와 충돌하여 error발생한다.
- 그럼 그냥 logback을 사용해도 되지 않나?
A: log4j2가 더 성능이 좋다.- 다음과 같은 코드를 추가하여 로깅 모듈을 제외시켜줘야 한다.
configurations { all*.exclude group: 'org.springframework.boot', module: 'spring-boot-starter-logging' all*.exclude group: 'org.springframework.boot', module: 'logback-classic' }
충돌을 방지해줬으니 의존을 추가해준다.
// log4j2 implementation 'org.springframework.boot:spring-boot-starter-log4j2'
추가 내용
log File이 directory에 남길 바라면 따로 설정을 해줘야한다.
application.properties가 있는 resources folder 내에서 log4j2를 설정할 xml file를 생성하고
application.properties에게 그 위치에 log4j2의 설정 파일이 있다는 것을 명시해줘야한다.
@Slf4j Annotation
SLF4J(Simple Logging Facade for Java)
java.util.logging, logback 및 log4j와 같은 다양한 로깅 프레임 워크에 대한 추상화(인터페이스) 역할을 하는 라이브러리
사용단계에서
private final Logger logger = LoggerFactory.getLogger(현재Controller.class);
로 Logger를 생성하여 사용한다.