MENU

Java 로그 필터로 HTTP 구문 분석

목차

Java 로그 필터로 HTTP 요청 구문 분석

javax.servlet.Filter구현하여 HTTP 요청 내용을 구문 분석하고 로그를 출력하는 편리한필터수업을 소개합니다.

이 로그 필터는, 로그 출력에 「java.util.logging.Logger」를 사용하고 있어, 로그 레벨을 변경하는 것으로 출력하는 정보를 변경할 수 있습니다.

javax.servlet.Filter란?

웹 어플리케이션 구축에 있어서, 메인이 되는 업무 처리 외에, 그 전후로 공통된 부차적인 처리를 실시할 필요가 있습니다.
예를 들면, 클라이언트의 인증이나, 권한 체크, 로깅등입니다.
이러한 부차적인 처리를 각각의 리소스로 코딩하면, 소프트웨어의 보수성을 방해하는 큰 원인이 되어, 메인터넌스의 곤란한 어플리케이션이 되어 버립니다.

javax.servlet.Filter 를 구현하면, 리퀘스가 서블릿 클래스에 건네지기 전에, 이 부차적인 처리를, 공통적으로 실행시킬 수가 있습니다.
또 필터의 설정은 web.xml로 할 수 있으므로, 소스 코드를 변경하지 않고, 필터를 추가하거나 삭제하는 것이 유연하게 할 수 있습니다.


로그 필터를 사용해보기

HTTP 요청에 필터를 통해 HTTP 요청을 구문 분석하는 로그 필터를 실제로 사용해 봅시다.
이번에는Tomcat처음부터 examples 응용 프로그램을 사용합니다.
다음 설정을 수행하면 이 필터를 즉시 실행할 수 있습니다.

1.소스 코드가져와 컴파일합니다.
2. 컴파일된 클래스 파일을 /examples/WEB-INF/classes 아래에 놓습니다.
3.web.xml에 다음 정의를 설정한다.
  LogFilter LogFilter logging.Level FINE LogFilter /*

※Struts 프레임워크를 사용했을 경우의 url-pattern은 이하가 됩니다.

   *.do

Sessions Example 화면을 실행한 로그 출력 결과를 확인해 보십시오.
javax.servlet.Filter 로그 필터로 웹 애플리케이션 분석

출력할 로그 정보와 로그 레벨

● 로그 출력 내용

로그 정보 로그 레벨
쿠키 정보 FINE
HTTP 헤더 정보 FINE
HTTP 기타 정보 FINE
HTTP 요청 매개변수 CONFIG
request 범위의 객체 CONFIG
session 범위의 객체 CONFIG
요청 전후의 메모리 사용량 CONFIG
화면 전환 정보 INFO

로그 레벨은 다음과 같이 구분하면 좋을 것입니다.

  • FINE ... 가장 상세한 로그를 출력합니다. HTTP 요청을 자세히 파싱하려는 경우 설정합니다.
  • CONFIG・・・약간의 상세한 로그를 출력합니다. 개발 기간 동안이 수준으로 설정하는 것이 좋습니다.
  • INFO ···· 화면 천이 정보만을 출력합니다.

● 로그 레벨 변경 방법
초기화 매개변수 logging.Level을 설정하여 로그의 출력 레벨을 변경할 수 있습니다.
예:

   logging.Level INFO

소스 코드

  • URL을(를) 확인했습니다!
목차