티스토리 뷰
로그(log)는 소프트웨어의 이벤트를 기록하는 것으로써, 소프트웨어의 동작상태를 파악하고 문제가 발생했을 때 이 동작 파악을 통해서 소프트웨어의 문제를 찾아내고 해결하기 위해 디자인 되었다. 즉, 소프트웨어의 디버깅이나 모니터링을 위하여 정보를 기록하는 곳에 사용되는데 기존의 Debugger나 println에 비해 로그는 다음과 같은 장점이 있다.
- 상황별 level을 지정하여 level별 메세지를 선택가능
- 응용 프로그램의 실행에 대한 흐름과 에러 확인 가능
- 프레임워크를 이용하여 간단하고 쉬운 사용환경 조성 가능
- 모듈 별로 유연하게 메세지 출력 가능
- 자유로운 출력 위치 및 다양한 출력 형식 지원
Java에서는 이러한 로그에 대해 여러 프레임워크가 존재한다. 로깅 프레임워크에는 slfj4j, log4j, logback, log4j2등 과 같은 것들이 존재하고 이것들에 대해 알아보았다.
slf4j란
slf4j는 Simple Logging Facade For Java의 약자로써 자체적인 로깅 프레임워크가 아니고 logger 추상체로써 다른 로깅 프레임워크가 접근할 수 있도록 도와주는 추상화 계층이다. 즉, logback이나 log4j2와 같은 로깅 프레임워크의 인터페이스의 역할을 해준다. 따라서 slf4j2를 이용하면 코드를 일정하게 유지하면서 구현체의 전환을 통해 다른 로깅 프레임워크로의 전환을 쉽고 간단하게 할 수 있다. 한마디로 이 녀석만으로는 사용할 수 없다는 얘기다. log4j나 lobback같은 라이브러리와 결합하여 slf4j 방식으로 로그를 남길 수 있다.
Log4j란
log4j는 가장 오래된 로깅 프레임워크로써 Apache의 Java기반 로깅 프레임워크이다. 콘솔 및 파일 출력의 형태로 로깅을 도와주며 xml, properties로 환경을 구성할 수 있다. 현재는 2015년 기준으로 개발이 중단되었다. log4j는 다음과 같은 구성을 가지고 있다.
log4j의 구성
log4j의 로그 레벨
FATAL > ERROR > WARN > INFO > DEBUG > TRANCE
logback이란
logback이란 log4j 이후에 출시된 보다 향상되고 가장 널리 사용되고 있는 Java 로깅 프레임워크중 하나이다. slf4j의 구현체로써 동작하는 logback은 Springboot 환경의 경우는 spring-boot-starter-logging안에 logback이 기본적으로 포함되어 있어서 별다른 dependency 추가 없이 사용할 수 있다.
logback은 log4j에 비해 향상된 필터링 정책 및 기능과 로그 레벨 변경등에 대해 서버 재시작 없는 자동 리로딩을 지원해준다.
log4j2
가장 최신에 나온 로깅 프레임워크로써 Apache의 log4j 다음 버전이다. logback처럼 필터링 기능과 자동 리로딩을 지원한다. logback과의 가장 큰 차이는 Multi Tread 환경에서 비동기 로거(Async Logger)의 경우 다른 로깅 프레임워크보다 처리량이 훨씬 많고, 대기 시간이 훨씬 짧다. 또한, Java8부터 도입된 람다식을 지원하고, Lazy Evalutaion을 지원한다.
출처
logging.apache.org/log4j/2.x/performance.html
www.egovframe.go.kr/wiki/doku.php?id=egovframework:rte3:fdl:logging:log4j_2:%EC%84%A4%EC%A0%95_%ED%8C%8C%EC%9D%BC%EC%9D%84_%EC%82%AC%EC%9A%A9%ED%95%98%EB%8A%94_%EB%B0%A9%EB%B2%95
jeong-pro.tistory.com/154
bcho.tistory.com/1312
www.slf4j.org/manual.html
'Spring > SpringBoot' 카테고리의 다른 글
[SpringBoot] 윈도우에서 실행중인 jar 종료 (0) | 2024.02.05 |
---|---|
[SpringBoot] 스프링 입문 프로젝트 환경 설정 - 빌드하고 실행하기 (0) | 2024.02.05 |
[SpringBoot] 스프링 입문 프로젝트 환경 설정 - View 환경설정 (0) | 2024.02.02 |
[SpringBoot] 스프링 입문 프로젝트 환경 설정 - 라이브러리 살펴보기 (0) | 2024.02.02 |
[SpringBoot] 스프링 입문 프로젝트 환경 설정 - 프로젝트 생성 (0) | 2024.02.02 |
- Total
- Today
- Yesterday
- 프로그래머스 세로 읽기
- 배열 만들기3
- 중첩스코프
- StringBuilder
- replace와 replaceAll의 차이점
- 문자열 반복하기
- 대소문자 변환
- Object.clone()
- SQL 개발자
- replaceAll
- Replace
- startsWith()
- 마진과 패딩의 차이점
- 블록스코프
- 렌더링 과정
- 프로그래머스
- 호이스팅
- 배열만들기1
- 엑셀 파일 추출
- SQLD
- Java
- n 번째 원소부터
- rep;ㅁce
- nodelist
- 신입개발자 면접 준비
- 프로그래머스 qr code
- useeffet
- 브라우저의 기본 구조
- 콜백 큐
- 스코프
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |