본문 바로가기
Programming

장애진단, 디버깅을 위한 로깅

by Chan_찬 2015. 1. 20.
728x90


requestmon.jsp


requestmon3.5.2-4.jar


jsp에서 생기는 오류 수정/테스트 완료



requestmon은 자바서비스넷의 이원영씨가 제작한 것으로 서블렛엔진이나 WAS에서 서비스중인

servlet 이나 JSP의 목록을 실시간으로 보여주고, 필요한 경우, 응답이 느린 서비스들만 대상으로 하여 특별한 로그파일에 기록해 주는 기능을 가지고 있습니다.

장애진단및 디버깅을 하기 위해 각 서비스들을 관찰 하는데 유용하게 사용하고 있습니다.

다음과 같은 클래스를 만든후 컴파일해서

/WEB-INF/classes/filters 에 둔후..


package filters;

import java.io.IOException;
import javax.servlet.*;
import javax.servlet.http.HttpServletRequest;

public class RequestMonFilter implements Filter {
    protected FilterConfig filterConfig = null;

    public void doFilter(ServletRequest request, ServletResponse response,
                         FilterChain chain)
throws IOException, ServletException {

        org.jdf.requestmon.ServiceTrace trace =
             org.jdf.requestmon.ServiceTrace.getInstance();
        trace.startTrace((HttpServletRequest)request);
        try {
        chain.doFilter(request, response);
        }finally {
         trace.endTrace((HttpServletRequest)request);
        }
    }

    public void destroy() {
        this.filterConfig = null;
    }
   
    public void init(FilterConfig filterConfig) throws ServletException { }
}


requestmon3.5.2-4.jar를 /WEB-INF/lib 폴더아래에 둡니다.

물론 jar파일은 filter 컴파일에도 필요합니다.

requestmon.jsp는 다른 JSP두는 적당한 곳에 두시구요.

/WEB-INF/web.xml을 열고 다음을 추가합니다.

    <filter>
        <filter-name>Request Monitor Filter</filter-name>
        <filter-class>filters.RequestMonFilter</filter-class>
    </filter>

    <filter-mapping>
        <filter-name>Request Monitor Filter</filter-name>
        <url-pattern>*</url-pattern>
    </filter-mapping>


이제 톰캣을 구동시키고 /requestmon.jsp 를 호출해보면 결과를 볼 수 있습니다.

실행속도가 3초이상 걸리는 서비스인 경우에는

%tomcat_home%/bin 디렉토리에 trace.log에 로그가 남겨집니다.

일단 제가 톰캣에 적용시켜서 잘 돌아가는걸 확인했구요..

다른 서블릿엔진에서도 문제없이 돌아가리라고 생각합니다..

 

출처 : 자바서비스넷


728x90
728x90
Buy me a coffeeBuy me a coffee

댓글