JAVA에서 LogBack을 이용한 로깅(logging) – 개요

로깅(Logging)이란?

  로깅(logging)이란 “프로그램 개발 중 및 완료 후 발생할 수 있는 오류에 대해 디버깅하거나 운영 중인 프로그램 상태를 모니터링 하기위해 필요한 정보(로그)를 기록하는 것”을 의미합니다.

예를들어, 프로그램의 각 메소드에서 동작 성공/실패 여부나 동작시간 등을 기록할 수 있도록하여 디버깅시에 어떤 클래스의 어떤 메소드에서 오류가 발생했는지, 어떤 메소드가 시간을 많이 사용하여 성능에 영향을 주는지 파악할 수 있게 됩니다.

LogBack이란?

“자바 오픈소스 로깅 라이브러리”

자바에서 로깅을 하는 방법으로는 System.out.println()과 같은 기본 메소드를 이용할 수도 있을것이고 개발자가 직접 로깅 클래스를 만들어 사용할 수도 있을것입니다. 하지만 이미 우리 세상에는 성능적/기능적으로 우수한 다양한 오픈소스 로깅 라이브러리들이 있습니다. ㅎㅎ!

대표적인 라이브러리로는 가장 널리사용 되었던 아파치의 Log4J가 있습니다.
그리고 Log4j를 만든 개발자 Ceki Gülcü 가 Log4J를 기반으로 더 빠른 속도와 더 적은 메모리 점유율등의 성능을 개선하여 LogBack을 개발하였습니다.

LogBack의 기능

먼저 다른 라이브러리들과 마찬가지로 LogBack도 가지고 있는 주요 로깅 기능이 있습니다.

  1. Level
    로그에 레벨을 설정할 수 있습니다.
    개발 시 디버깅을 위해 출력하도록 한 로그들은 개발완료 후 운영시점에서는 더이상 출력시킬 필요가 없습니다. 이러한 로그들을 출력시키지 않기위해 소스 여기저기 흩어진 로그출력 코드들을 지우거나 주석처리 해야 할까요?
    ㄴㄴ! 로그마다 레벨을 설정해두고 설정파일에서 출력 로그 레벨을 설정하여 원하는 단계의 로그만 출력할 수 있습니다.
  2. Appender
    출력 방법을 선택할 수 있습니다.
    로그의 기록을 담당하는 Appender에게 출력위치(콘솔, 파일 등)나 출력 내용(날짜/시간, 레벨, 스레드명 등)에 대한 패턴을 설정 할 수 있습니다.
  3. Logger
    로그 마다 다른 설정내용을 쉽게 적용시킬 수 있습니다.
    위의 주요 설정을 포함한 다양한 설정 항목을 가지고 있는 객체(Logger)에 이름을 부여하여 필요한 상황에 맞게 적절한 Logger를 호출하여 사용할 수 있습니다.

그리고, LogBack이 특별하게 가지고 있는 기능도 있습니다.

  1.   Automatic Reloading Configuration file
    실행중인 프로그램의 로그 설정을 변경하고 싶을 때, 기존의 다른 라이브러리의 경우 실행중인 프로그램의 재시작이 필요했습니다. 하지만 LogBack의 경우 설정파일을 스캔하는 별도의 쓰레드를 두어 지정한 시간마다 설정파일을 스캔해 프로그램의 재시작 없이 설정을 적용시킬 수 있습니다.
  2. Automatic Compression / Removal
    로그 파일을 생성할 때 별도의 프로그램을 통해 압축을 진행할 필요 없도록 자동 압축을 지원하며, 시간 또는 갯수를 설정하여 설정한 시간이나 갯수를 초과할 경우 로그 파일이 자동으로 삭제 되도록 할 수 있습니다.
  3. Graceful recovery from I/O failures
    로그파일은 JDBC, Socket 등의 Appender를 통해 원격 서버에 저장시킬 수 있습니다. 하지만 만약 원격서버 또는 연결에 일시적 장애가 발생하여 로그파일의 I/O Failure이 발생 할 경우, Log4J 와 같은 기존 라이브러리에서는 서버 복구시점까지의 프로그램 중단 및 재시작이 필요하지만, LogBack은 서버 중지 없이, 장애 발생시점으로부터의 자동복구를 지원합니다.
  4. Prudent mode
    하나의 서버에서 동작하는 여러 JVM의 로그가 하나의 로그파일로 기록되기를 원할 경우 사용할 수 있는 기능입니다. 단, 스레드 간 쓰기 경합이 생기므로 대량의 데이터를 다루는 것은 삼가해야 한다고 합니다.

이외에도 많은 기능에 대한 내용은 아래에서 확인 할 수 있습니다.
LogBack 사용해야 하는 이유

다음 글에서 LogBack을 설치하고 사용하는 방법에 대해 설명하겠습니다.

감사합니다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중