본문 바로가기

[Jboss] jboss logging 관련 설정

인포꿀팁 발행일 : 2022-02-10

애플리케이션에서 Log4j를 사용하는 경우

대부분의 애플리케이션은 Log4j와 같은 별도의 로깅 프레임워크를 사용하여 개발합니다. 배포 시 JBoss EAP 6의 배포 스캐너가 애플리케이션에 포함된 Log4j 설정을 찾아 JBoss의 LogManager에서 처리합니다. 이렇게 되면 애플리케이션의 Log4j 설정에 지정된 로그 파일에 남는 것이 아니라 JBoss의 로그 핸들러 파일에 남습니다.

이 방식을 설정하는 옵션이 'org.jboss.as.logging.per-deployment' 입니다. 기본값은 true입니다. false로 설정하면 배포 스캐너가 Log4j 설정을 찾지 않고, 로깅 기능을 애플리케이션에서 실행할 수 있도록 합니다.

export JAVA_OPTS=" $JAVA_OPTS -Dorg.jboss.as.logging.per-deployment=false "

 

이때 Jboss의 로깅모듈과 어플리케이션의 로깅 모듈이 서로 출동이 나는 경우가 있습니다. (주로 jboss 6버전 하위나 스프링 레거시의 경우 해당)  Logging라이브러리 등, 내가 프로젝트에 정의한 의존성을 무시하고 JBoss가 자체 라이브러리를 사용해서 오류를 일으킬 경우, 제외시키기 위한 목적으로 설정하며, 실무에서는 주로 해당 설정을 false로 주어서 어플레이케이션에서 로깅을 컨트롤하는 경우가 많았습니다.

.

jboss-deployment-structure.xml

<?xml version="1.0" encoding="UTF-8"?>
<jboss-deployment-structure xmlns="urn:jboss:deployment-structure:1.1">
	<deployment>
		<exclusions>
			<!-- Disable jboss slf4j module to enable Logback -->
			<module name="org.slf4j" />
			<module name="org.slf4j.impl" />
			<module name="org.slf4j.jcl-over-slf4j"/>
			<module name="org.apache.commons.logging"/>
			<module name="org.apache.log4j"/>
			<module name="jdbc.resultsettable"/>
			<module name="jdbc.sqlonly"/>
		</exclusions>
	</deployment>
</jboss-deployment-structure>

 

DB 관련 쿼리 정보를 로깅에서 확인하고 싶은 경우

JBoss 인스턴스 내 configuration/standalone.xml 의 일부를 수정해야하며, 이때 db 설정이 잡힌 곳을 수정해야 합니다.

 

아래와 같이 logger 부분을 추가하고 datasource 태그 내부에 spy="true"를 추가해줍니다.

<!-- ************* Enabling Spy logging category ************ -->
<logger category="jboss.jdbc.spy">
        <level name="TRACE"/>
    </logger>
<!-- ******************************************************** -->

<!-- ****** Below is MySqlDS with Spy logging enabled ****** -->
        <datasource jndi-name="java:/MySqlDS" pool-name="MySqlDS_Pool" enabled="true" **spy="true"** jta="false" use-ccm="false">
            <connection-url>
                jdbc:mysql://localhost:3306/testDB
            </connection-url>
            <driver-class>
                com.mysql.jdbc.Driver
            </driver-class>
            <driver>
                mysql-connector-java-5.1.13-bin.jar
            </driver>
            <security>
                <security-domain>
                    encrypted-ds
                </security-domain>
            </security>
        </datasource>
<!-- ****** Above is MySqlDS with Spy logging enabled ****** -->

'Infra > JBoss' 카테고리의 다른 글

[JBoss] Deployment 배포  (0) 2022.02.10

댓글