더북(TheBook)

file 출력을 설정합니다.

기존 로그 파일을 지우고 새로 생성합니다.

파일 크기를 설정합니다. 최댓값은 10MB입니다.

생성할 백업 파일의 수입니다. 기본값은 1입니다.

로그 파일 이름을 설정합니다.

레이아웃을 설정합니다.

출력 형식을 설정합니다.

로깅 레벨의 범위를 지정하는 클래스를 설정합니다.

로깅 레벨의 최하위 레벨을 설정합니다.

로깅 레벨의 최상위 레벨을 설정합니다.

3. com.springmvc.interceptor 패키지에 AuditingInterceptor 클래스를 생성하고 다음 내용을 작성합니다.

코드 11-8 AuditingInterceptor.java

package com.springmvc.interceptor;

import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Calendar;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.web.servlet.handler.HandlerInterceptorAdapter;

public class AuditingInterceptor extends HandlerInterceptorAdapter {

    public Logger logger = LoggerFactory.getLogger(this.getClass()); 
    private String user;
    private String bookId;

    public boolean preHandle(HttpServletRequest request,
                             HttpServletResponse arg1,
                             Object handler) throws Exception {
        if (request.getRequestURI().endsWith("books/add") && request.getMethod().equals("POST")) {
            user = request.getRemoteUser();
            bookId = request.getParameterValues("bookId")[0];
        }
        return true;
    }

    public void afterCompletion(HttpServletRequest request,
                                HttpServletResponse response,
                                Object handler, Exception arg3) throws Exception {
        if (request.getRequestURI().endsWith("books/add")) {
            logger.warn(String.format("신규등록 도서 ID : %s, 접근자 : %s, 접근시각 : %s", bookId, user, getCurrentTime())); 
        }
    }

 

    private String getCurrentTime() {
       DateFormat formatter = new SimpleDateFormat("yyyy/MM/dd HH:mm:ss");
        Calendar calendar = Calendar.getInstance();
        calendar.setTimeInMillis(System.currentTimeMillis());
        return formatter.format(calendar.getTime());
    }
}

Logger 객체를 가져옵니다.

로그 메시지를 출력합니다.

현재 년/월/일 시:분:초를 얻어 오는 메서드입니다.

신간 소식 구독하기
뉴스레터에 가입하시고 이메일로 신간 소식을 받아 보세요.