JAVA & Open Framework2013. 10. 5. 13:57

1. log4j-xxx.jar 라이브러리를 프로젝트에 추가한다.


2. 아래와 같이 사용


package action.test1.test2;


import com.opensymphony.xwork2.Action;

import org.apache.log4j.ConsoleAppender;

import org.apache.log4j.Logger;

import org.apache.log4j.PatternLayout;



public class LoginAction implements Action {

static Logger logger = Logger.getLogger(LoginAction.class);

private String message;

//setter

public void setMessage(String message) {

this.message = message;

}

//getter

public String getMessage() {

return message;

}

@Override

public String execute() throws Exception{

if (message == null)

message = "";

else

message = message;

message += userId + "로 로그인하셨습니다.";

//System.out.println("test log : " + message);

PatternLayout pattern = new PatternLayout("%t> [%d{yyyy-MM-dd HH:mm:ss}] [1 %c{1}] [2 %c{2}] [3 %c{3}] [4 %c{4}] [5 %c{5}] [6 %c{6}] [%F] [%L line] [%p] %m %n");

logger.addAppender(new ConsoleAppender(pattern));

logger.debug("로그를 출력합니다.");

logger.debug("콘솔 Appender를 이용했으므로 콘솔로 출력 됩니다.");

logger.debug("파일, 혹은 db로도 저장 가능하구요!");

logger.warn("warn 로그를 출력합니다.");

logger.warn("warn 콘솔 Appender를 이용했으므로 콘솔로 출력 됩니다.");

logger.warn("warn 파일, 혹은 db로도 저장 가능하구요!");

return SUCCESS;

}


}


3. Pattern Layout

#%p : debug, info 등의 로그타입
#%d : 로그 발생 시간 SimpleDateFormat을 따름( ex) %d{yyyy-MM-dd HH:mm:ss} )
#%t : 로그 쓰레드 이름
#%F : 로그 발생 프로그램 파일명( ex) HolloWorld.java 등으로 표시됨)
#%c : 로그 발생 클래스명(만약 패키지가 너무 길다면 %c{숫자}로 조절 가능)
#( ex) action.test1.test2.LoginAction.class => %c{1} : LoginAction /  %c{2} : test2.LoginAction 
#  %c{3} : test1.test2.LoginAction / %c{4} : action.test1.test2.LoginAction .....  )  
#%M : 로그 발생 메서드명
#%L : 호출 코드 라인
#%r : 프로그램 시작 후 로그 발생까지 시간
#%m : 로그로 전달된 메시지(즉, 발생하도록 세팅한 메시지)
#%n : 개행



출처 및 참고 : http://pupustory.tistory.com/151

Posted by 아로나