기본적으로 JBoss EAP 6.x는 Access log 를 남기지 않는데 Access log를 설정하는 방법은 2가지가 있다.
JBoss EAP 엔진에서 설정하지 않고 서비스 컨텍스트별로 Access log를 남기는 방법이다.
WEB-INF/jboss-web.xml
파일에 AccessLogValve를 설정한다.
<jboss-web> <valve> <class-name>org.apache.catalina.valves.AccessLogValve</class-name> <param> <param-name>prefix</param-name> <param-value>myapp_access_log.</param-value> </param> <param> <param-name>suffix</param-name> <param-value>.log</param-value> </param> <param> <param-name>fileDateFormat</param-name> <!-- You can use pattern letters defined in SimpleDateFormat. This fileDateFormat setting affects to log rotation cycle --> <!-- default setting: daily --> <param-value>yyyy-MM-dd</param-value> <!-- hourly <param-value>yyyy-MM-dd.HH</param-value> --> </param> <param> <param-name>pattern</param-name> <!-- You can use constant text or replacement strings defined in http://docs.jboss.org/jbossweb/7.0.x/config/valve.html to pattern tokens. --> <!-- default setting: common (%h %l %u %t "%r" %s %b) --> <param-value>common</param-value> <!-- combined (%h %l %u %t "%r" %s %b "%{Referer}i" "%{User-Agent}i") <param-value>combined</param-value> --> <!-- combined + response time <param-value>%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %T</param-value> --> <!-- combined + Session ID + Response time <param-value>%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %S %T</param-value> --> </param> <param> <param-name>directory</param-name> <param-value>${jboss.server.log.dir}</param-value> </param> <param> <param-name>resolveHosts</param-name> <param-value>false</param-value> </param> </valve> </jboss-web>
엔진내 모든 Access log를 설정하는 방법이다.
standalone.xml 이나 domain.xml내의 <virtual-server>
셋팅안에 <access-log>
설정을 추가한다.
<access-log pattern='%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %S %T'/>
예제는 아래와 같다.
<subsystem xmlns="urn:jboss:domain:web:1.2" default-virtual-server="default-host" native="false"> <connector name="http" protocol="HTTP/1.1" scheme="http" socket-binding="http"/> <virtual-server name="default-host" enable-welcome-root="true"> <alias name="localhost"/> <alias name="example.com"/> <access-log pattern='%h %l %u %t %r %s %b %{Referer}i %{User-Agent}i %S %T' prefix="access_log_"/> </virtual-server> </subsystem>
또는 아래와 같이 CLI를 통해 추가하도록 한다.
/subsystem=web/virtual-server=default-host/configuration=access-log:add /subsystem=web/virtual-server=default-host/configuration=access-log:write-attribute(name="pattern",value="%h %l %u %t \\"%r\\" %s %b %S %T")