IT/Java

Spring Boot 3 Logging (Slf4j + logback / log4j2)

시간의 무게 2024. 6. 19. 19:38

로그는 당연히 찍혀서 나오는줄 알았다. 오늘이 오기 전까지..

로그레벨 조정이 되지 않는다는 문의를 받고 테스트 해봤지만 나역시 조정이 되지 않았다.

결과적으로는 spring-boot-starter-logging 의존성을 이용해서 slf4j의 logger가 구성이 되어 있었고 이 바깥에서 아무리 테스트해도 실패였던 거였다..

알아본 김에 logging 관련해서 간단하게 정리하려고 한다.

1. 의존성 - slf4j + logback + log4j2 = spring boot

spring-boot-starter-logging 의존성을 추가하면 된다 = 

spring application 내에서 테스트 해야한다. = 

SpringApplication.run이 시작하는 파일 하위에 있어야 한다.

참고로, spring-boot-starter-web도 동일하게 가능하다.

dependencies {
    implementation 'org.springframework.boot:spring-boot-starter-logging'
}


gradle 설정

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-logging</artifactId>
</dependency>

maven 설정

2. config 설정 (logback.xml, log4j2.xml 경로 설정 등등)

spring에서는 logback.xml이 있으면 자동으로 인식한다.

혹은 application.yml 내에 logging.config=logback.xml으로 설정이 가능하며

이때 logback.xml이 있는 경로가 classpath에 등록되어 있어야 한다.

 

이클립스(eclipse) classpath 설정

프로젝트 오른쪽 클릭 > build path > configure build path 클릭하면 아래 화면이 뜸 Source 탭에서 Java Resources 폴더 생성 및 Class 파일 빌드 위치 변경 가능함 Add Folder로 Java Resources에 생성할 폴더 세팅 보통

grandj.tistory.com

 

3.logback.xml log4j2.xml 설정

<configuration>
  <appender name="CONSOLE" class="ch.qos.logback.core.ConsoleAppender">
    <layout class="ch.qos.logback.classic.PatternLayout">
      <Pattern>%d [%thread] %level %logger - %m%n</Pattern>
    </layout>
  </appender>
  <root level="${root-level:-INFO}">
    <appender-ref ref="CONSOLE"/>
  </root>
</configuration>

간단하게는 위와 같이 혹은 아래와 같이 멋있게 짤수도 있다.

 

[Spring] logback 파헤치기 (로그 레벨 설정, 프로필별 로그 설정, 글자 색상 변경)

안녕하세요 오늘은 logback을 통해 로그를 관리하는 방법을 알아보겠습니다. 목차 - 로그 색상 바꾸기 - 프로필에 따라 로그 레벨 다르게 설정하기 - 로그 파일을 분할해서 저장하기 - JPA SQL을 로그

breakcoding.tistory.com