Log4j의 구조
1. Logger
- 로그의 주체 : 로그 파일을 작성하는 클래스
- 로그레벨을 가짐 (로그문의 레벨과 로거 레벨를 비교하여 로그의 출력여부를 결정)
- 출력할 메시지를 Appender에 전달
2.Appender
- 전달된 로그를 어디에 출력할지 결정 ( 콘솔 / 파일 / DB 등)
- Appender 종류
- WriterAppender :
Writer 객체에 로그를 남기는 Appender - ConsoleAppender :
System.out, System.err에 로그를 남기는 Appender
- 옵션
Target : System.out / System.err
Follow : true -> SystemOutStream 에 저장
activeOption : appender를 활성화 - FileAppender :
파일에 로그를 남기는 Appender
- 옵션
File : 파일명 Append : 추가 모드 여부 (true/false)
BufferedIO : 버퍼 사용 여부 (true/false)
BufferSize : 버퍼 사이즈
--??--
Threshold : (AppenderSkelton으로부터 계승)
ImmediateFlush : (WriteAppender로부터 계승)
Encoding : (WriteAppender로부터 계승) - RollingFileAppender :
크기에 따라 File명을 변환하며 로그를 남기는 Appender
- 옵션
MaxFileSize : 최대 파일 사이즈
MaxBackupIndex : 로그를 최대 개수
File, Append, BufferdIO, BufferSize, Threshold, ImmediateFlush, Encoding - DailyRollingFileAppender :
날짜에 따라 File명을 변환하며 로그를 남기는 Appender
- 옵션 DatePattern : 날짜 형식(yyyy-MM, yyyy-ww,yyyy-MM-dd, yyyy-MM-dd-a, yyyy-MM-dd-HH 등등) - RollingFileAppender : 크기에 따라 File명을 변환하며 로그를 남기는 Appender
- AsyncAppender : Logging Event 발생시 Thread를 생성하여 로그를 남기는 Appender
-옵션
triggeringPolicy : 로그 트리거 옵션
rollingPolicy : 로그 정책 옵션
org.apache.log4j.rolling.TimeBasedRollingPolicy : 시간 베이스 org.apache.log4j.rolling.SizeBasedTriggeringPolicy : 사이즈 베이스org.apache.log4j.rolling.FilterBasedTriggeringPolicy : 필터 베이스org.apache.log4j.rolling.FixedWindowRollingPolicy : 인덱스 베이스 백업 파일 - SMTPAppender :
로그를 이메일로 전달하는 Appender
- WriterAppender :
- Appender 종류
3. Layout
- 어떤 형식으로 출력할지 결정
- Layout 종류
- DateLayout
- HTMLLayout
- PatternLayout (일반적으로 사용)
- PatternLayout (org.apache.log4j.PatternLayout) 상세 설명
- C : 클래스명을 출력
설정을 추가하여 클래스 이름 또는 특정 패키지 이상만 출력하도록 설정 가능
- 추가 설정 -
m : 로그로 전달된 메시지를 출력한다.
M : 로그를 수행한 메소드명을 출력한다.
n : 줄 바꿈
p : 로그 이벤트명 (DEBUG등)
r : 로그 처리시간 (milliseconds) - d : 로그 시간을 출력한다. java.text.SimpleDateFormat에서 적절한 출력 포맷을 지정할 수 있다.
- F : 파일 이름을 출력한다. 로그 시 수행한 메소드, 라인번호가 함께 출력된다.
- l (location) : 로깅 이벤트가 발생한 클래스의 풀네임.메서드명(파일명:라인번호) 출력
- L : 라인 번호만 출력
- m : 로그로 전달된 메시지 출력
- M : 로그를 수행한 메소드명 출력
- n : 줄바꿈
- p : 로그 이벤트명 (레벨명)
- r : 로그 처리시간 (milliseconds)
- T : 로깅 이벤트가 발생한 스레드명
출처: <https://androphil.tistory.com/420>
- C : 클래스명을 출력
- SimpleLayout
- XMLLayout
- PatternLayout (org.apache.log4j.PatternLayout) 상세 설명
'Web 개발 > Java Web' 카테고리의 다른 글
[SPRING/Mybatis] POI를 이용한 대용량 데이터 추출 (엑셀 다운) -2 (0) | 2020.07.09 |
---|---|
[SPRING/Mybatis] POI를 이용한 대용량 데이터 추출 (엑셀 다운) -1 (0) | 2020.07.08 |
문자열을 날짜로 변환하기 (String to Date) (0) | 2019.08.21 |
[log4j] 설정 및 사용방법 (0) | 2019.06.13 |
[log4j ] Log4j 란 (0) | 2019.06.11 |