목차

JBoss EAP 6.x Access log 설정

기본적으로 JBoss EAP 6.x는 Access log 를 남기지 않는데 Access log를 설정하는 방법은 2가지가 있다.

Web Application별 설정

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>

Engine Global 설정

엔진내 모든 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")

참조링크