Log back
가장 많이 사용되는 log 툴인 log4j를 기반으로 산업적인 로깅 시스템을 개발하였는데, 그 결과물이 log back.
- log back의 성능이 log4j보다 빠르고 더 가벼움
- log4j와 slf4j의 형태 모두 지원함
구조
log 출력 구분
위의 표처럼 로그 출력을 계층화 시킬 수 있습니다.
log 출력 XML pattern
%-4relative [%thread] %-5level %logger{32} - %msg%n 형식으로 XML을 setting하면
이 처럼 출력 됩니다.
Configuration
LOG back을 사용하다 보면 파일로 출력하고 싶은 때도 있습니다. 또한 적절한 로그 수준에 맞게 출력하고 싶은 필요성을 느낍니다.
이럴 때에 설정값을 변경하면 보다 쉽게 하고 싶은 일들을 할 수 있습니다.
설정 파일들
설정파일을 확인하는 순서 (상위의 순서에 설정이 존재하면 아래 내용은 찾지 않습니다.)
- classpath에 있는 logback.groovy 파일
- classpath에 있는 logback-test.xml 파일
- classpath에 있는 logback.xml 파일
- JVM이 ServiceLoader를 가지면 이것을 com.qos.logback.classic.spi.Configurator로 사용합니다.
- 이것도 없다면 log back이 console에 바로 출력하는 BasicConfigurator를 사용합니다.
기본 설정파일
위의 설정 파일은 콘솔로 출력하고 debug 레벨까지 출력하며
위의 내용처럼 출력됩니다.
설정파일 재참조
프로그램이 실행하는 중에 위처럼 하면 설정파일의 수정을 확인할 수 있습니다.
위의 내용은 설정파일 수정을 30초마다 추적하겠다는 의미입니다.
scanPeriod 속성을 적지 않으면 1분마다 추적합니다.(default값)
root와 logger
root와 logger를 이용해서 로그를 출력할 위치와 정도를 나타낼 수 있습니다.
위처럼 나타낼 수 있으며 위처럼 설정하면
위의 표처럼 assign됩니다.
Appender
Appender를 이용하면 출력할 위치와 출력 패턴을 설정할 수 있습니다.
기본 구조
- 콘솔에찍는 appender
- 속성
- name: Appender의 이름
- class: 사용할 Appender
- 내부 entity
- encoder: 출력 형식을 지정함
- pattern: 로그에 출력하고 싶은 데이터 형식을 출력함
콘솔 appender
File appender
- 파일이 있지 않으면 생성해 줍니다.
- 하나의 파일에 로그를 모두 넣습니다.
RollingFileAppender
- 파일을 형식과 규칙에 맞게 생성해줍니다.
- 작성 일자 기준 혹은 최대 길이 기준으로 구분할 수 있습니다.
참고자료
log back 공식 홈페이지
Comments