728x90
반응형
✅ Logging
- 시스템이 동작할 때 시스템의 상태 및 동작 정보를 시간 경과에 따라 기록하는 것을 의미
- 개발 과정 혹은 개발 후에 발생하는 동작에 대해 트래킹을 하여 예기치 못한 이슈를 진단 및 해결하는데 도움이 되지만 무분별한 로깅은 성능상 이슈를 발생시킬 수 있기 때문에 의미 있는 정보를 적절한 수준으로 수집하는 것이 중요
- Java는 System.out.println()을 이용하거나 Logging Framework를 사용하여 로그를 남길 수 있음
System.out.println();
- Java를 처음 접할 때부터 사용할 수 있는 간단한 로깅 방법
- 가장 편하고 확인하기 좋은 방법이지만 성능에 영향을 많이 주는 경우가 빈번히 발생
- 파일이나 콘솔에 로그를 남길 경우 내용이 완전히 프린트되거나 저장될 때까지 다른 작업들이 대기할 수 밖에 없음→애플리케이션에서는 대기시간 발생(이 대기시간은 시스템 속도에 의존적)
- locale의 영향으로 실제 결과와 콘솔에 출력되는 결과가 다를 수 있음
Logging Framework
Java에서는 성능과 편리함을 잡은 다양한 Logging Framework가 있으며 이를 통해 쉽게 로깅을 처리할 수 있음
✅ Logging Framework 종류
*jul(java.util.logging) → Log4j → Logback → Log4j2 순으로 등장
종류 | 설명 |
jul(java.util.logging) | - Java 1.4 버전부터 내장되어있는 내장 로깅 프레임워크 |
Slf4j (Simple Logging Facade for Java) |
- 퍼사드패턴을 적용한 로깅 추상화 프레임워크(interface) - 래퍼 라이브러리로 설정에 따라서 실제 구현체(implement)인 'Log4j2', 'Logback'을 사용할 수 있음(but 하나만 사용 가능하며 두개 이상 사용할 경우 에러 발생) - interface이므로 단독 사용 불가 |
Apache Log4j (Logging for Java) |
- Apache의 Java 기반 로깅 프레임워크 |
Logback | - Log4를 만든 개발자가 Log4j기반으로 더 빠른 속도와 더 적은 메모리 점유율 등 성능을 개발하여 만든 로깅 프레임워크 |
Apache Log4j2 (Logging for Java 2) |
- Log4j와 java.util.logging(jul)을 포함한 기존의 로깅 솔루션을 기반으로 만들어진 로깅 프레임워크 |
퍼사드 패턴(Facade Fattern)
- 여러 라이브러리, 프레임워크 또는 클래스들의 복잡한 집합을 단순화시켜주는 인터페이스를 제공하는 구조의 디자인 패턴
- 퍼사드 패턴 적용 장점 예: log4j2 보안 이슈가 발생하면 자바 코드 수정 없이 설정 파일만 추가해서 logback으로 이전 가능
✅ log4j2 설정
로그 레벨
TRACE > DEBUG > INFO > WARN > ERROR > FATAL > OFF
https://dev-donghwan.tistory.com/128
https://kanoos-stu.tistory.com/76
https://www.atatus.com/blog/best-practices-in-java-logging/
728x90
반응형
'Spring' 카테고리의 다른 글
[Spring] 스프링 빈 중복 에러(UnsatisfiedDependencyException, NoUniqueBeanDefinitionException) (0) | 2024.08.20 |
---|---|
[Spring] log4jdbc 라이브러리로 sql 로그 파라미터 값까지 출력하기 (0) | 2023.08.08 |