LogBack 이란?
- 로그백이란 Log4J 기반으로 개발된 로깅(Logging) 라이브러리이다.
- log4J에 비해 약 10배정도 빠른 퍼포먼스, 메모리 효율성 증대 장점이 있다.
- 출시순서 : log4J → logback → log4j2
로그백의 특징
- 로그에 특정 레벨을 설정할 수 있다 (Trace > Debug > Info > Wran > Error)
- 실운영과 테스트 상황에서 각각 다른 출력 레벨을 설정하여 로그를 확인할 수 있다.
- 출력 방식에 대해 설정할 수 있다.
- 설정 파일을 일정 시간마다 스캔하여 애플리케이션 중단 없이 설정 가능하다.
- 별도의 프로그램 없이 자체적으로 로그 압축을 지원한다.
- 로그 보관 기간 설정이 가능하다.
로그백의 구조

로그백의 설정
- 일반적으로 클래스패스에 있는 로그백 설정 파일을 참조하게 된다.
- Java Legacy, Spring 의 경우에는 logback.xml 파일을 참조한다.
- Spring Boot의 경우에는 logback-spring.xml 파일을 참조한다.
Appender
- 로그의 형태 및 어디에 출력을 할지 설정하기 위한 영역이다.
- 대표적인 Appender 형식은 다음과 같다.
- ConsoleAppender : 콘솔에 로그를 출력
- FileAppender : 파일에 로그를 저장
- RollingFileAppender : 여러개의 파일을 순회하며 로그를 저장
- SMTPAppender : 로그를 메일로 보냄
- DBAppender : 데이터베이스에 로그를 저장

Encoder
- 어팬더 내에 포함되는 항목이며 패턴을 사용하여 원하는 형식으로 로그를 표현할 수 있다.
Root
- 설정한 어팬더를 참조하여 로그의 레벨을 설정할 수 있다.
- root는 전역 설정이며 지역 설정을 하기 위해서는 logger를 사용함

로그레벨
- ERROR : 로직 수행 중에 오류가 발생한 경우, 시스템적으로 심각한 문제가 발생하여 작동이 불가한 경우
- WARN : 시스템 에러의 원인이 될 수 있는 경고 레벨, 처리 가능한 사항
- INFO : 상태변경과 같은 정보성 메시지
- DEBUG : 애플리케이션의 디버깅을 위한 메시지 레벨
- TRACE : DEBUG 레벨보다 더 디테일한 메시지를 표현하기 위한 레벨
예를 들어, 로그 레벨을 INFO 라고 설정하면 TRACE, DEBUG 레벨은 출력되지 않는다.
패턴
