Java+

+ / Logging

Dear-J 2025. 4. 4. 03:55

로깅 라이브러리

스프링 부트 라이브러리 사용

>> 스프링 부트 로깅 라이브러리(spring-boot-starter-logging) 포함

 

Logback, Log4J, Log4J2 등 수많은 라이브러리

>> 통합 인터페이스 SLF4J 라이브러리

>> 실무에서는 스프링 부트가 기본 제공하는 구현체인 Logback 대부분 사용

 

@RestController

반환 값이 String이면 뷰 이름으로 인식

>> 뷰를 찾고 뷰가 렌더링

반환 값으로 뷰를 찾는 것이 아니라 HTTP 메시지 바디에 바로 입력

>> 실행 결과 ok 메세지 받음

 

테스트

로그가 출력되는 포멧 확인

>> 시간, 로그 레벨, 프로세스 ID, 쓰레드 명, 클래스 명, 로그 메시지

로그 레벨 설정

>> TRACE > DEBUG > INFO > WARN > ERROR

>> 개발 서버 debug 출력, 운영 서버 info 출력

@Slf4j로 변경

 

올바른 로그 사용

log.debug("data="+data)

>> 로그 출력 레벨을 info로 설정해도 해당 코드의 문자 더하기 연산 발생

>> 사용 x

log.debug("data={}", data)

>> 로그 출력 레벨을 info로 설정하면 아무일도 발생 x

>> 앞과 같은 의미없는 연산 발생 x

>> 사용 o

 

로그 사용 장점

쓰레드 정보,  클래스 이름 같은 부가 정보 제공하고 출력 모양 조정 가능

로그 레벨에 따라 개발 서버, 운영 서버를 분리하여 상황에 맞게 조절 가능

시스템 아웃 콘솔 뿐 아니라 파일이나 네트워크 등 로그를 별도의 위치에 남기기 가능

성능이 일반 System.out보다 좋음(내부 버퍼링, 멀티 쓰레드 등)

 

 

'Java+' 카테고리의 다른 글

+ / 의존성 주입  (0) 2025.03.16
+ / 테스트 주도 개발  (0) 2025.03.15