<beans:bean id="accessLoggingInterceptor" class="kr.or.ddit.controller.intercept.AccessLoggingInterceptor"></beans:bean>
<interceptors>
<interceptor>
<mapping path="/*"/>
<exclude-mapping path="/resources/**"/>
<beans:ref bean="accessLoggingInterceptor"/>
</interceptor>
</interceptors>
package kr.or.ddit.controller.intercept;
import java.io.File;
import java.io.FileWriter;
import java.io.PrintWriter;
import java.lang.reflect.Method;
import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.springframework.web.method.HandlerMethod;
import org.springframework.web.servlet.ModelAndView;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;
import lombok.extern.slf4j.Slf4j;
@Slf4j
public class AccessLoggingInterceptor extends HandlerInterceptorAdapter{
PrintWriter writer;
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler)
throws Exception {
log.info("preHandle...!");
File file = new File("C:/logs/ddit_logging.log");
writer = new PrintWriter(new FileWriter(file));
return true;
}
@Override
public void postHandle(HttpServletRequest request, HttpServletResponse response, Object handler,
ModelAndView modelAndView) throws Exception {
String requestURI = request.getRequestURI();
log.info("requestURI : " + requestURI);
HandlerMethod handlerMethod = (HandlerMethod) handler;
Method method = handlerMethod.getMethod();
Class clazz = method.getDeclaringClass(); //class kr.or.ddit.controller.BoardContoller 와 같은 녀석
String className = clazz.getName(); // kr.or.ddit.controller.BoardController와 같은 녀석
String classSimpleName = clazz.getSimpleName(); // BoardController와 같은 녀석
String methodName = method.getName(); // boardList와 같은 메소드
writer.printf("현재일시 : %s %n", getCurrentTime());
writer.printf("Access Controller", className + "." + methodName);
}
public String getCurrentTime() {
DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
Calendar cal = Calendar.getInstance();
cal.setTimeInMillis(System.currentTimeMillis());
return formatter.format(cal.getTime());
}
@Override
public void afterCompletion(HttpServletRequest request, HttpServletResponse response, Object handler, Exception ex)
throws Exception {
// TODO Auto-generated method stub
super.afterCompletion(request, response, handler, ex);
}
}
로그인 페이지로 넘어오면 preHandle() 메소드가 실행되 해당 로그 파일이 생성되고

로그인을 진행하면 로그파일에 잘 저장되는 것을 볼 수 있다.

