출처 : http://opennaru.tistory.com/109

JBoss EAP6 에서 server.log에서 애플리케이션에서 출력하는 로그 메세지가 보이지 않습니다. 톰캣에서는 메세지가 출력되는데 JBoss EAP6에서만 나오지 않습니다.


1. 동작환경

본 내용은 다음과 같은 환경을 전제로 작성되었습니다.

  • JBoss EAP6.X

2. 문제 

애플리케이션이나 모듈에 포함되어 있는 Log4J의 설정이 반영되지 않아 server.log 에 로그가 보이지 않는다.

3. 원인
JBoss EAP6에서는 기본적으로 자체의 로그 모듈을 사용하게 됩니다. 이 경우 배포 대상 애플리케이션에 포함된 Log4J 설정이 동작하지 않습니다.

4. 해결책 

이 문제를 해결하는 방법은 두 가지로 첫 번째는 JBoss 인스턴스 옵션으로 "org.jboss.as.logging.per-deployment=false"를 두는 방법이며, 두 번째는
"jboss-deployment-structure.xml" 를 이용하여 해당 로그 라이브러리를 Exclusion으로 선언하는 방법입니다.


4.1  org.jboss.as.logging.per-deployment=false 를 이용하는 방법

JBoss 인스턴스 시작 옵션에 시스템 프로퍼티로 시스템 프롭퍼티에 org.jboss.as.logging.per-deployment=false 를 설정합니다.
이 방법은 JBoss 에서 각 배포 대상에 대하여 JBoss 자체의 로거를 사용하지 않게 하는 것입니다.  

  • standalone 에서는 
-Dorg.jboss.as.logging.per-deployment=false


  • 도메인 모드에서는
 <server name="PMS" group="pms_server_group" auto-start="false">
            <system-properties>
                   <property name="org.jboss.as.logging.per-deployment" value="false"/>
            </system-properties>
</server>



4.2 jboss-deployment-structure.xml 에서 exclusion으로 선언하는 방법 

  • EAR의 경우 XX.ear/META-INF/jboss-deployment-structure.xml
  • WAR의 경우 XX.war/WEB-INF/jboss-deployment-structure.xml

<jboss-deployment-structure>
  <deployment>
    <exclusions>
        <module name="org.apache.log4j" />
        <module name="org.apache.commons.logging" />
    </exclusions>
  </deployment>
</jboss-deployment-structure>


- logback 설정 시 샘플

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure>
<deployment>
<exclusions>
<!--  
                        스프링 프레임워크 사용 시 org.apache.commons.logging 은 필수로 해줘야 함
-->
                        <module name="org.apache.commons.logging" />
<module name="org.slf4j" />
<module name="org.slf4j.ext" />
<module name="org.slf4j.impl" />
<module name="org.slf4j.jcl-over-slf4j" />
</exclusions>
</deployment>
</jboss-deployment-structure>


5. References


- jboss 설정에 console 부분은 주석처리 한다.

 <subsystem xmlns="urn:jboss:domain:logging:1.5">
            <!--
            <console-handler name="CONSOLE">
                <level name="INFO"/>
                <formatter>
                    <named-formatter name="COLOR-PATTERN"/>
                </formatter>
            </console-handler>
            -->

            <periodic-rotating-file-handler name="FILE" autoflush="true">
                <formatter>
                    <named-formatter name="PATTERN"/>
                </formatter>
                <file relative-to="jboss.server.log.dir" path="server/server.log"/>
                <suffix value=".yyyy-MM-dd"/>
                <append value="true"/>
            </periodic-rotating-file-handler>
            <logger category="com.arjuna">
                <level name="WARN"/>
            </logger>
            <logger category="org.apache.tomcat.util.modeler">
                <level name="WARN"/>
            </logger>
            <logger category="org.jboss.as.config">
                <level name="DEBUG"/>
            </logger>
            <logger category="sun.rmi">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb">
                <level name="WARN"/>
            </logger>
            <logger category="jacorb.config">
                <level name="ERROR"/>
            </logger>
            <logger category="org.apache.catalina.core.AprLifecycleListener">
                <level name="DEBUG"/>
            </logger>
            <logger category="org.jboss.as.controller.management-deprecated">
                <level name="OFF"/>
            </logger>
            <logger category="org.jboss.as.clustering.web.infinispan">
                <level name="TRACE"/>
            </logger>
            <root-logger>
                <level name="INFO"/>
                <handlers>
                    <!--
                    <handler name="CONSOLE"/>
                    -->
                    <handler name="FILE"/>
                </handlers>
            </root-logger>
            <formatter name="PATTERN">
                <pattern-formatter pattern="%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
            <formatter name="COLOR-PATTERN">
                <pattern-formatter pattern="%K{level}%d{HH:mm:ss,SSS} %-5p [%c] (%t) %s%E%n"/>
            </formatter>
</subsystem>

 

+ Recent posts