본문 바로가기
Spring

[Spring]로깅 라이브러리 - logback

by whitedeveloper 2023. 1. 5.

#.로깅(Logging)이란?

애플리케이션이 동작하는 동안 시스텥의 상태나 동작 정보를 시간 순으로 기록하는 것을 의미

 

-비기능적 요구사항 = 사용자나 고객에게 필요한 기능이 아니다. 디버깅하거나 개발 후 문제를 해결할 때 원인 분석용

 

자바 진영에서 가장 많이 사용되는 로깅 프레임워크는 *Logback이다.

 

*Logback

-log4j 이후에 출시된 slf4j를 기반으로 구현

-spring-boot-starter-web 라이브러리 내부에 내장되어 있어 별도 의존성 추가할 필요없다.

 

#.Logback특징

-크게 5개 레벨

ERROR : 로직 수행 중에 시스템에 심각한 문제가 발생해서 애플리케이션의 작동이 불가능한 경우를 의미

WARN : 시스템 에러의 원인이 될 수 있는 경고 레벨을 의미

INFO : 애플리케이션의 상태 변경과 같은 정보 전달을 위해 사용

DEBUG : 애플리케이션의 디버깅을 위한 메시지를 표시하는 레벨

TRACE :  DEBUG보다 더 상세한 메세지를 표현하기 위한 레벨

 

-실제 운영 환경과 개발 환경에서 각각 다른 출력 레벨을 설정해서 로그를 확인할 수 있다,

-Logback의 설정 파일을 일정 시간마다 스캔해서 애플리케이션을 재가동하지 않아도 설정을 변경할 수 있다.

-별도의 프로그램 지원 없이도 자체적으로 로그파일을 압축할 수 있다.

-저장된 로그 파일에 대한 보관 기간등을 설정해서 관리할 수 있다.

 

#.Logback 설정

-logback 설정파일은 리소스 폴더 안에 생성 (src/main/resource)

-설정파일은 XML형식을 띄고 있다.

 

-Appender 영역

 >로그의 형태를 설정하고 어떤 방법으로 출력할지를 설정하는 영역

 >Appender자체는 하나의 인터페이스를 의미, 하위에 여러 구현체가 존재

   >>로그의 대표적인 구현제

   >>ConsoleAppender : 콘솔에 로그를 출력

   >>FileAppender: 파일에 로그를 저장

   >>RollingFileAppender : 여러 개의 파일을 순회하면서 로그를 저장

   >>SMTPAppender : 메일로 로그를 전송

   >>DBAppender : 데이터베이스에 로그를 저장

 

 ex) <appender name="console" class="ch.qos.logback.core.ConsoleAppender"> //클래스 속성에 각 구현체를 정의

           <filter class="ch.qos.logback.classic.filter.ThresholdFilter"> //Appender가 어떤 레벨로 로그를 기록하는지 지정

               <level>INFO</level>

           </filter>

            <encoder> //로그표현 형식을 패턴으로 정의

                <pattern>[%d{yyyy-MM-dd HH:mm:ss:SSS}] [%-5level] [%thread] %logger %msg%n</pattern>

            <encoder>

 

 

 

'Spring' 카테고리의 다른 글

[Spring] Talend API Tester  (0) 2023.01.08
[spring]springboot 프로젝트 만들기 - intellij.ver  (0) 2023.01.08
[Spring]Spring boot  (0) 2023.01.04
[Spring] 스프링 프레임워크  (0) 2022.12.24
[Spring]SpringBoot  (0) 2022.11.01