반응형


1. LOG4J 구조
① Logger(Category) : 로그의 주체 (로그 파일을 작성하는 클래스)
 - 로깅 메세지를 Appender에 전달합니다.
 - Log4j의 심장부에 위치하며, 개발자가 로그출력 여부를 런타임에 조정되도록 해준다.
 - Logger는 로그레벨을 가지고 있으며, 로그의 출력여부는 로그문의 레벨과 로거의 레벨을 가지고 결정된다.
 - 어플리케이션을 작성하기전 어떤 로거를 사용해야 할지 정해야 한다.
   ex) static Logger logger = Logger.getLogger(getClass());


② Appender : 로그를 출력하는 위치
 - 전달된 로깅 메세지를 파일에다 기록할 것인지, 콘솔에 출력할 것인지 아니면 DB에 저장할 것인지 매개체 역활을 합니다.


③ Layout : Appender의 출력포맷
 - 어떤 형식으로 출력할 것이지 출력 layout을 결졍합니다.

 ※ Layout의 종류
 1) DateLayout
 2) HTMLLayout
 3) PatternLayout (일반적으로 PatternLayout을 사용하는 것이 디버깅에 가장 적합함)
 4) SimpleLayout
 5) XMLLayout

 

2. LOG4J 로깅 레벨
① FATAL : 가장 크리티컬한 에러가 일어 났을 때 사용합니다.
② ERROR : 일반 에러가 일어 났을 때 사용합니다.
③ WARN : 에러는 아니지만 주의할 필요가 있을 때 사용합니다.
④ INFO : 일반 정보를 나타낼 때 사용합니다.
⑤ DEBUG : 일반 정보를 상세히 나타낼 때 사용합니다

 

3. 설정 포맷

① 로그파일명 포맷 (DatePattern)
 - 로그파일명 포맷입니다. 날짜, 시간 및 분단위로까지 로그 파일을 분리할 수 있습니다.

 ※ 형식 설명
  '.'yyyy-MM 매달 첫번째날에 로그파일을 변경합니다
  '.'yyyy-ww 매주의 시작시 로그파일을 변경합니다. 
  '.'yyyy-MM-dd 매일 자정에 로그파일을 변경합니다.
  '.'yyyy-MM-dd-a 자정과 정오에 로그파일을 변경합니다.
  '.'yyyy-MM-dd-HH 매 시간의 시작마다 로그파일을 변경합니다.
  '.'yyyy-MM-dd-HH-mm 매분마다 로그파일을 변경합니다.


② PatternLayout 포맷
 - 로그자체를 어떤 포맷으로 남길지 결정합니다.
 - layout에는 HTMLLayout, PatternLayout, SimpleLayout, XMLLayout등이 있으며 PatternLayout이 일반적으로 가장 많이 쓰입니다.


%p  debug, info, warn, error, fatal 등의 priority 가 출력된다.
%m  로그내용이 출력됩니다
%d  로깅 이벤트가 발생한 시간을 기록합니다. 포맷은 %d{HH:mm:ss, SSS}, %d{yyyy MMM dd HH:mm:ss, SSS}같은 형태로 사용하며 SimpleDateFormat에 따른 포맷팅을 하면 된다
%t  로그이벤트가 발생된 쓰레드의 이름을 출력합니다.
%%  % 표시를 출력하기 위해 사용한다.
%n  플랫폼 종속적인 개행문자가 출력된다. \r\n 또는 \n 일것이다.
%c  카테고리를 표시합니다. 예) 카테고리가 a.b.c 처럼 되어있다면 %c{2}는 b.c가 출력됩니다.
%C  클래스명을 포시합니다. 예) 클래스구조가 org.apache.xyz.SomeClass 처럼 되어있다면 %C{2}는 xyz.SomeClass 가 출력됩니다
%F  로깅이 발생한 프로그램 파일명을 나타냅니다.
%l  로깅이 발생한 caller의 정보를 나타냅니다
%L  로깅이 발생한 caller의 라인수를 나타냅니다
%M  로깅이 발생한 method 이름을 나타냅니다.
%r  어플리케이션 시작 이후 부터 로깅이 발생한 시점의 시간(milliseconds)
%x  로깅이 발생한 thread와 관련된 NDC(nested diagnostic context)를 출력합니다.
%X  로깅이 발생한 thread와 관련된 MDC(mapped diagnostic context)를 출력합니다.


test.jsp

[%c] [%C] [%d] [%F] [%l] [%L] [%m] [%M] [%n] [%p] [%r] [%t] [%x] [%X]

[test.jsp] [org.apache.jsp.test_jsp] [2005-03-10 12:37:23,561] [test_jsp.java] [org.apache.jsp.test_jsp._jspService(test_jsp.java:64)] [64] [fatal!!] [_jspService] [개행] [FATAL] [765567] [http-8080-Processor25] [] []

반응형

+ Recent posts