WAS/JBoss

[TroubleShooting] 애플리케이션에서 Log4J 로그가 출력이 안되는 경우

투칼론 2016. 3. 31. 10:04
반응형
애플리케이션에서 Log4J를 사용하는 경우 JBoss 내부적으로 사용하고 있는 Log4J 패키지와 중복되어 애플리케이션에서 별도로 사용하고 있는 Log4J 로그가 출력되지 않을 수 있습니다. 이에 대한 해결책은 아래와 같습니다.


1. -Dorg.jboss.as.logging.per-deployment=false 설정
JBoss 인스턴스 시작 옵션에 시스템 프로퍼티로 시스템 프롭퍼티에 org.jboss.as.logging.per-deployment=false 를 설정합니다.  JBoss 배포스캐너가 애플리케이션의 Log4j 설정을 찾지않고, 로깅 기능을 애플리케이션에서 실행할 수 있도록 합니다. 

  • 스탠드얼론(standalone) 모드

 -Dorg.jboss.as.logging.per-deployment=false


  • 도메인(domain) 모드

  <server name="서버명" group="서버 그룹명" auto-start="false">

            <system-properties>
                   <property name="org.jboss.as.logging.per-deployment" value="false"/>
            </system-properties>
</server>



2. jboss-deployment-structure.xml 에 JBoss에서 제공하는 Logging 프레임워크 제외


.jar, .war 또는 .ear 배포 시에 배포 디스크립터인 jboss-deployment-structure.xml 에 exclusion으로 선언을 통해 JBoss에서 제공하는 Logging 프레임워크를 제외시킵니다.


<?xml version="1.0" encoding=UTF-8"?>


<jboss-deployment-structure>


  <deployment>

      <exclusions>

          <module name="org.apache.log4j"/>

      </exclusions>

  </deployment>


</jboss-deployment-structure>