티스토리 뷰

로깅 개념

로그 레벨

  • TRACE < DEBUG < INFO < WARN < ERROR < FATAL
  • INFO 레벨로 설정하면 그 위의 INFO, WARN, ERROR, FATAL 로그가 출력된다.
  • FATAL: 아주 심각한 에러가 발생한 상태. 시스템적으로 심각한 문제가 발생하여 애플리케이션 작동이 불가능. 프로그램이 종료되는 경우가 많음.
  • ERROR: 의도하지 않은 에러가 발생한 경우. 프로그램이 종료되진 않음. 프로그램에서 개발자가 의도하지 않은 예외를 나타낼 때 사용.
  • WARN: 에러가 될 수 있는 잠재적 가능성이 있는 경우.
  • INFO: 명확한 의도가 있는 에러. 요구사항에 따라 시스템 동작을 보여줄 때 사용. 개발자가 의도한 예외.
  • DEBUG: INFO 레벨보다 더 자세함.
  • TRACE: DEBUG 레벨보다 더 자세함.
  • 기본 로그 레벨은 DEBUG

SLF4J

  • 단독으로 사용 불가능
  • 인터페이스
  • 최종 사용자가 배포시 원하는 구현체를 선택

Logback

  • SLF4J의 구현체
  • Log4J토대로 만든 프레임워크
  • logback-core: appender, layout 인터페이스가 이 모듈에 속함
  • logback-classic: logback-core 를 가지며 SLF4J API를 구현함, Logger 클래스가 속함.
  • logback-access: Servlet Container 와 통합되어 HTTP 엑세스에 대한 로깅 기능을 제공. 웹 애플리케이션 레벨이 아닌 컨테이너 레벨에서 설치되어야 함.
  • logback.xml 로 설정파일을 관리한다. 커스터마이징 가능하다.

Logback 설정요소

  • Logger: 어떻게 기록할지. 출력 레벨 조정.
  • Appender: 어디에다 기록할지.
    • Console Appender: 로그를 콘솔에 출력
    • FileAppender: 로그를 지정 파일에 기록
    • RollingFileAppender: FileAppender 를 상속. 패턴에 따라 로그 파일을 관리 가능.
  • Layout: 어떻게 출력할지. 로그메세지를 변환하는 역할

팀 프로젝트에 적용된 로깅 정책 확인하기

build.gradle

  • SLF4J는 스프링 부트의 기본으로 설정되어 있어 별도의 라이브러리를 추가하지 않아도 됨
  • spring-boot-starter-web 안에 spring-boot-starter-logging 구현체가 있음.
dependencies {  
	// ...  
	implementation 'org.springframework.boot:spring-boot-starter-web'  
	// http 로그를 편리하게 사용하기 위한 라이브러리  
	implementation 'net.rakugakibox.spring.boot:logback-access-spring-boot-starter:2.7.1'

	// logging to cloudwatch
	implementation("ca.pjer:logback-awslogs-appender:1.4.0")
	// logback 에서 condition 사용을 위한 라이브러리
	implementation("org.codehaus.janino:janino:3.0.7")

}

 

application.properties

logging.level.root=INFO

logback.xml

  • src/main/resources/ 하위에 위치.
  • spring boot 에서는 logback.xml 로 설정하면 스프링 부트에 대한 설정 전에 로그백 설정이 되므로 제어할 수 없다.
  • logback-spring.xml을 사용하던지 각 프로퍼티 파일에서 logback 설정파일을 관리하여야 한다.
  • 현재 logback.xml이 있는 이유는 aws cloudwatch 설정을 하면서 옮긴 듯 싶다.

logback-access.xml

  • http 요청, 응답과 관련된 설정

logback-spring.xml

  • 스프링 로깅과 관련된 설정

참고

공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2025/01   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함