사용법도 그다지 어렵지 않고, 로그를 출력하는것도 어렵지 않다.
Log4j에서 사용하는 주요 객체는 다음과 같다.
1.Logger (로그 본체)
위에서 사용 했던것 처럼 Logger의 본체이다.
Logger.getLogger를 이용해 Logger을 가져와 사용한다.
여기에는 로그 출력 여부를 동적으로 확인할 수 있고,
로그레벨을 가지고 있어 출력할 로그의 레벨을 확인 후 출력할 수 있다.
2. Appender (로그 출력위치)
로그를 반드시 콘솔로 출력해야 할 이유는 없다.
파일로 출력할 경우도 있고, db에 저장할 경우도 있다.
이러한 로그 출력 위치를 결정한다.
3. Layout (레이아웃)
로그 출력에 대한 레이아웃이다.
일정 패턴을 갖고 있어 보다 정확한 로그를 확인할 수 있다.
패턴은 다음과 같이 설정할 수 있다.
레이아웃의 종류는 여러가지(DateLayout,XMLLayout, HTMLLayout ..)가 있는데
그중 하나인 PatternLayout를 살펴보도록 하자.
%p debug, info등의 로그 타입
%d 로그 발생 시간 SimpleDateFormat 포멧을 따름 ( ex> %d{yyyy-MM-dd HH:mm:ss} )
%t 로그 쓰레드 이름
%F 로그 발생 프로그램 파일 명 (만약 패키지가 너무길어 불편하다면 %F {숫자}로 조절 가능)
%M 로그 발생 메소드 명
%r 프로그램 시작 후 로그 발생까지 시간
%m 로그로 전달된 메시지
%n 개행
%L 호출 코드 라인
기본적으로 이정도만 알고 있어도 크게 무리는 없을것 같다.
이제 포멧을 지정해 로그를 출력해 보자.
*/
import org.apache.log4j.ConsoleAppender;
import org.apache.log4j.Logger;
import org.apache.log4j.PatternLayout;
public class Log4J_Sample002_PatternLayout {
static Logger logger = Logger.getLogger(Log4J_Sample002_PatternLayout.class);
public static void main(String ar[]) {
// 패턴 레이아웃을 작성합니다. 형식은 마음대로 작성하시면 되죠!
PatternLayout pattern =
new PatternLayout("%t> [%d{yyyy-MM-dd HH:mm:ss}] [%c{1}] [%L] [%p] %m %n");
// 로그 출력 위치는 콘솔로 합니다.
// 다음번 예제는 파일로 해볼께요.
logger.addAppender(new ConsoleAppender(pattern));
logger.debug("로그를 출력 합니다.");
logger.debug("콘솔 Appender를 이용했으므로 콘솔로 출력 됩니다.");
logger.debug("파일, 혹은 db로도 저장 가능 하구요!");
}
}
/*
출력결과
===========================================================
main> [2013-12-12 15:06:50] [Log4J_Sample002_PatternLayout] [15] [DEBUG] 로그를 출력 합니다.
main> [2013-12-12 15:06:50] [Log4J_Sample002_PatternLayout] [16] [DEBUG] 콘솔 Appender를 이용했으므로 콘솔로 출력 됩니다.
main> [2013-12-12 15:06:50] [Log4J_Sample002_PatternLayout] [17] [DEBUG] 파일, 혹은 db로도 저장 가능 하구요!
*/
댓글 없음:
댓글 쓰기