#.로깅(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 |