기본적으로 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")