로그, 로깅이란?

로깅이란 시스템 동작시 시스템의 상태와 작동 정보를 시간에 따라 기록하는 것

그 기록이 로그

 

로깅의 장점

소프트웨어의 디버깅이나 모니터링을 위하여 소프트웨어 동작 상태 정보를 기록해서 볼 수 있다.

-상황에 따라 Level별 메시지 가능

-프로그램의 실행에 대한 흐름과 에러 확인 가능

-자유로운 출력 형식과 위치 가능

-프레임워크를 이용하여 쉽게 설정 가능

 

로깅 프레임워크 3가지 종류들

1. logback(사용 추천)

log4j와 유사하지만 향상된 성능과 필터링 옵션, slf4j, 자동 리로드 기능 지원

 

spring boot 환경의 경우 spring-boot-starter-web > spring-boot-starter-logging에 기본적으로 logback 구현체가 포함!

-> 따로 프레임워크를 지정하지 않는다면 자동으로 logback이 적용된다.

 

공식 메뉴얼 링크

http://logback.qos.ch/manual/index.html

 

Logback Manual

The logback manual The complete logback manual documents the latest version of logback framework. In over 150 pages and dozens of concrete examples, it covers both basic and advanced logback features, including: the overall logback architecture discussion

logback.qos.ch

https://docs.spring.io/spring-boot/docs/current/reference/html/spring-boot-features.html#boot-features-logging

 

Core Features

Spring Boot lets you externalize your configuration so that you can work with the same application code in different environments. You can use a variety of external configuration sources, include Java properties files, YAML files, environment variables, an

docs.spring.io

2. log4j2

logback 이후에 나온 프레임워크

logback과 유사하나 Multi Thread 환경에서의 비동기 로거(Async Logger) 케이스에 처리량이 더 높고 시간 효율이 좋다.

 

spring boot 환경의 경우 log4j2를 사용하려면 dependency에서 logback 제거 작업 필요

 

3. slf4j

로깅에 대한 추상 레이어

코드를 일정하게 유지하면서 구현체의 전환 (다른 프레임워크로의 전환)을 쉽게 지원

logback, log4j2는 slf4j의 구현체

 

로그 레벨 

TRACE  <  DEBUG  <  INFO  <  WARN  <  ERROR

 

-ERROR : 오류가 발생

-WARN  : 처리 가능한 문제, 향후 에러의 원인이 될 수 있는 경고성 메시지

-INFO  : 상태 변경과 같은 정보성 로그를 표시한다.
-DEBUG : 디버깅하기 위한 정보. 
-TRACE : Debug보다 상세한 정보

 

차후에 스프링 부트에서 logback 설정을 하는 방법도 다뤄볼까 예정 중이다.

 

참고 사이트

https://wildeveloperetrain.tistory.com/36

https://goddaehee.tistory.com/206

+ Recent posts