ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Spring] Logback 알아보기
    Software Development/Java 2020. 12. 19. 20:06

    프로그램은 다양한 로그를 남기게 됩니다. 이런 로그는 시스템의 로그 파일에 남기 때문에 사용자가 직접 볼 수는 없습니다. 그렇지만 이러한 시스템의 로그는 프로그램의 개발 및 유지보수, 에러확인 등 애플리케이션 전반에 걸쳐 사용됩니다. 스프링 부트도 다양한 로그 프레임워크를 쉽게 적용할 수 있도록 지원합니다.

     

    Logback이란?

    몇 년 전까지 자바 프로젝트에서 가장 많이 사용되는 로그 라이브러리는 Log4j였습니다. 지금은 개발이 종료됐지만 Log4j는 자바의 예외를 처리하기 위해 시작된 프로젝트입니다. Log4j 개발자들이 Log4j를 토대로 Logback을 만들게 되었습니다. 

     

    Logback은 다음과 같은 장점을 가지고 있습니다.

     

    * 오랫동안 널리 사용되고 검증된 Log4j를 기반으로 다시 작성되었습니다. 성능이 10배 정도 빠르고 메모리 사용량도 적습니다.

    * Log4j부터 진해완 테스트 경험을 토대로 더욱 광범위한 테스트를 통해 검증되었습니다.

    * 로그 설정이 변경될 경우 서버를 재시작하지 않더라도 바로 반영됩니다.(Log4j는 설정이 변경될 경우 서버를 재시작해야 반영되었습니다.) 로그 설정이 변경될 경우 내부에 설정 변화를 감지하는 별도의 스레드가 존재하여 서버의 재시작 없이 바로 반영됩니다. 이 스레드는 서버에 초당 100만 번이 넘는 요청을 하더라도 애플리케이션의 성능에 큰 영향을 끼치지 않습니다.

     

    이러한 장점을 가진 Logback은 로깅 구현체 중 하나로 slf4j를 함께 사용합니다. slf4j는 자바의 다양한 로그 모듈들의 추상체라고 할 수 있습니다. 엄밀히 말하면 자바의 인터페이스와 비슷한 역할을 한다고 할 수 있습니다. slf4j의 API를 이용할 경우 실제 로깅을 담당하는 로깅 구현체의 종류와 상관없이 일관된 로그 코드를 작성할 수 있습니다. 로그 출력 등 로깅 코드는 slf4j를 이용하면 내부적으로는 Logback이나 Log4j와 같은 로깅 구현체가 그 기능을 구현합니다.

     

    스프링 부트로 프로젝트를 생성하면 Logback을 기본으로 사용합니다.  

    'Software Development > Java' 카테고리의 다른 글

    [Spring] AOP 사용하기  (0) 2020.12.20
    [Spring] 인터셉터 사용하기  (0) 2020.12.20
    [Spring] 스프링 프레임워크 이해하기  (0) 2020.12.15
    [Spring] 스프링 부트  (0) 2020.12.15
    [Spring] 그레이들[Gradle]  (0) 2020.12.14

    댓글

Designed by Tistory.