[Apache Tomcat - (1) ] Server.xml의 "Valve className"은 무엇일까? 접속로그이다.(AccessLogValve)
Tomcat의 org.apache.catalina.valves.AccessLogValve 클래스를 활용 방법이 있다.
(
directory : 생성될 파일의 경로를 설정 할 수 있습니다.
pattern : %t는 이벤트 발생 시간,
%{userid}s는 HttpSession으로 부터 userid의 속성을 얻어와 적어주는 등
쓰여질 로그파일의 내용 패턴을 설정 합니다.
)
============================================================================
.../conf/server.xml 파일.
다음을 추가해 주시면 됩니다.
( 모든 server.xml에 간략한 상태로 주석처리 되어있으므로 굳이
변경하지 않고 주석만 해제하시고
사용하셔도 상관없습니다. )
<Host ...>
............... (생략)
<Valve className="org.apache.catalina.valves.AccessLogValve"
directory="logs"
prefix="localhost_access_log."
suffix=".txt"
pattern="Date: %t, UserId : %{userid}s, RemoteIP : %a, LocalIP: %A, RemoteHostName : %h, RequestFirstLine : %r"
resolveHosts="false"/>
............... (생략)
</Host>
============================================================================
위의 설정을 한후 해당 Tomcat에 deploy된 WebApp에 접속하게 되면 다음과 같은 파일을 자동으로 생성해주게 됩니다.
다음을 자세히 보며 pattern에 설정해 놓은 값이 적절히 반영되었음을 확인해 보시면 됩니다.
결과 파일 localhost_access_log.2010-06-07.txt 의 내용 --> ( " - " 는 값이 null임을 의미합니다. )
Date: [01/May/2020:13:34:36 +0900], UserId : -, RemoteIP : 0:0:0:0:0:0:0:1, LocalIP: 192.168.30.45, RemoteHostName : 0:0:0:0:0:0:0:1, RequestMethod : GET, QueryString : , requestFirstLine : GET /HackerMacroExam/AccessLogTest.jsp HTTP/1.1
Date: [01/May/2020:13:34:40 +0900], UserId : 12345678, RemoteIP : 0:0:0:0:0:0:0:1, LocalIP: 192.168.30.45, RemoteHostName : 0:0:0:0:0:0:0:1, RequestMethod : POST, QueryString : , requestFirstLine : POST /HackerMacroExam/AccessLogTestServlet HTTP/1.1
Date: [01/May/2020:13:34:40 +0900], UserId : 12345678, RemoteIP : 0:0:0:0:0:0:0:1, LocalIP: 192.168.30.45, RemoteHostName : 0:0:0:0:0:0:0:1, RequestMethod : GET, QueryString : , requestFirstLine : GET /HackerMacroExam/AccessLogTest2.jsp HTTP/1.1
Date: [01/May/2020:13:37:05 +0900], UserId : 12341234, RemoteIP : 192.168.0.32, LocalIP: 192.168.30.45, RemoteHostName : 192.168.0.32, RequestFirstLine : POST /HackerMacroExam/AccessLogTestServlet HTTP/1.1,
Date: [01/May/2020:13:37:05 +0900], UserId : 12341234, RemoteIP : 192.168.0.32, LocalIP: 192.168.30.45, RemoteHostName : 192.168.0.32, RequestFirstLine : GET /HackerMacroExam/AccessLogTest2.jsp HTTP/1.1,
Date: [01/May/2020:14:36:43 +0900], UserId : -, RemoteIP : 0:0:0:0:0:0:0:1, LocalIP: 192.168.30.45, RemoteHostName : 0:0:0:0:0:0:0:1, RequestFirstLine : GET /HackerMacroExam/AccessLogTest.jsp HTTP/1.1,
Date: [01/May/2020:14:37:13 +0900], UserId : -, RemoteIP : 192.168.30.45, LocalIP: 192.168.30.45, RemoteHostName : 192.168.30.45, RequestFirstLine : GET /HackerMacroExam/AccessLogTest.jsp HTTP/1.1,
Date: [01/May/2020:14:38:02 +0900], UserId : 112, RemoteIP : 192.168.0.32, LocalIP: 192.168.30.45, RemoteHostName : 192.168.0.32, RequestFirstLine : POST /HackerMacroExam/AccessLogTestServlet HTTP/1.1,
Date: [01/May/2020:14:38:02 +0900], UserId : 112, RemoteIP : 192.168.0.32, LocalIP: 192.168.30.45, RemoteHostName : 192.168.0.32, RequestFirstLine : GET /HackerMacroExam/AccessLogTest2.jsp HTTP/1.1,
Date: [01/May/2020:14:40:28 +0900], UserId : -, RemoteIP : 127.0.0.1, LocalIP: 192.168.30.45, RemoteHostName : 127.0.0.1, RequestFirstLine : GET /HackerMacroExam/AccessLogTest.jsp HTTP/1.1,
Date: [01/May/2020:14:44:21 +0900], UserId : -, RemoteIP : 192.168.30.45, LocalIP: 192.168.30.45, RemoteHostName : 192.168.30.45, RequestFirstLine : GET /HackerMacroExam/AccessLogTest.jsp HTTP/1.1,
Date: [01/May/2020:14:44:36 +0900], UserId : -, RemoteIP : 192.168.0.32, LocalIP: 192.168.30.45, RemoteHostName : 192.168.0.32, RequestFirstLine : POST /HackerMacroExam/AccessLogTestServlet HTTP/1.1,
Date: [01/May/2020:14:44:50 +0900], UserId : -, RemoteIP : 192.168.0.32, LocalIP: 192.168.30.45, RemoteHostName : 192.168.0.32, RequestFirstLine : GET /HackerMacroExam/AccessLogTest.jsp HTTP/1.1,
============================================================================