티스토리 뷰
자바에는 여러 로깅 프레임워크가 존재합니다.
SLF4 J : java진영 로깅 api들의 추상체
파사트 패턴 및 추상화를 통해 기능 제공
logback, log4 j... : 구현체
log4j는 이미 개발이 중단되었으며
사람들은 logback, log4j2를 사용 권장을 합니다..
구글에서 검색을 하면 logback이 약 100만 개
log4j2가 50만 개 결과가 나옵니다.
정보량을 생각해서 logback을 선택하겠습니다.
사용을 위해서는
sfl4 j
logback-core
logback-classic
3개의 라이브러리가 필요합니다.
Logger logger = LoggerFactory.getLogger(temp2.Main.class);
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
log기능 사용을 위해 static메서드로 구현된
getLogger에서 Logger를 객체를 받아왔습니다.
임포트에 패키지명을 보면 모두 slf4j로 되어있습니다.
slf4j의 스펙만 알아두면 기능을 사용할 수 있습니다.
http://logback.qos.ch/manual/introduction.html
대부분의 경우 로깅에 관한 한 클래스는 SLF4J 클래스만 가져오면 됩니다. 따라서 모든 클래스는 아니더라도 대다수의 클래스가 SLF4 J API를 사용하고 로그 백의 존재를 잊게 됩니다.
로그 백 구조
logger, appender, layout
(함께 작동하여 개발자가 메시지 유형 및 수준에 따라 메시지를 기록하고
런타임 시 이러한 메시지의 형식과 보고 위치를 제어할 수 있습니다.)
logger <- 메시지에 대한 콘텍스트, 0개 이상의 appender 설정
appender <- 로그 메시지 출력 위치, 형식...
layout <- 메시지 형식 지정
계층
logback의 로그 계층은 '.'을 기준으로 한
패키지 형식의 이름으로 기반으로 합니다.
'com.foo'로거는 'com.foo.bar'로거의
부모입니다.
로거의 레벨이 명시가 안되어있다면
부모 로거의 레벨을 상속받게 됩니다.
com.foo의 레벨이 info로 명시되어있고
com.foo.bar의 레벨을 명시하지 않으면
com.foo.bar의 레벨은 info가 됩니다.
그리고
루트 로거는 로거 계층의 맨 위에 있습니다.
n개의 로거에 레벨을 명시하지 않으면
모두 루트 로거의 디폴트 레벨인 'debug'를
상속받습니다.
로그의 레벨 TRACE < DEBUG < INFO < WARN < ERROR 출력시 각 레벨은 상위 레벨에 포함됩니다. (level을 debug을 trace는 찍히지 않음!) |
appender 누적
logger는 자신의 appender에게만 로그를
전달하지 않고
상위 logger에게도 로그를 전달합니다.
하지만 부모logger에 계속 log가 전달되어서
중복으로 로그가 찍힐수 있습니다.
additivity="false"
속성을 상위 'b'로거에 명시하면
명시한 'b'로거의 상위 로거부터는
로그 전달이 안됩니다.
rollover
타깃 파일을 바꾸는 조건
logging.log에 어펜드하다가 조건이 충족하면
새로운 파일로 타깃을 변경
example)
조건이 날짜 단위일경우
1월1일 로그 -> a파일
1월2일 로그 -> b파일
RollingPolicy(i)
(롤오버 발생시의 동작을 정의)
TimeBasedRollingPolicy
FixedWindowRollingPolicy
TriggeringPolicy(i)
(롤오버 활성화 시기를 정의하는 클래스)
SizeBasedTriggeringPolicy
timeBasedFileNamingAndTriggeringPolicy
'Java & Kotlin' 카테고리의 다른 글
자바 상속 (java Inheritance) (0) | 2021.10.03 |
---|---|
apache와 tomcat (0) | 2021.09.30 |
sql_mode=only_full_group_by (0) | 2021.08.30 |
java)linkedList 구현 (0) | 2021.08.13 |
패스워드 암호화(작성중) (0) | 2021.08.04 |
- Total
- Today
- Yesterday
- 백준 제로
- 백엔드
- jre11
- 프로그래머
- 스타트업
- jre8
- 백준
- JDK8
- 코딩테스트
- mappedby
- 개발자채용
- ㅃ
- java8
- 백준 제로 자바
- jvm
- 다대일
- 자사서비스
- JDK
- 자바
- springboot
- jdk11
- 관계설정
- boot
- jre
- 알고리즘
- boot 일대다
- 스택
- JPA
- Spring
- 문제
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |