Developer Sang Guy

[Wildfly] 로그가 안나와요(sl4j 충돌) 본문

Others

[Wildfly] 로그가 안나와요(sl4j 충돌)

은크 2023. 3. 30. 16:34

어쩌다가 WAS로 Wildfly(이전 JBoss)를 사용하게 되었다.

 

Spring Boot를 사용하여 애플리케이션을 개발 후 서버에 배포하여 Wildfly를 실행하였는데

로그가 정상적으로 출력되지 않는 상황이 발생했다.

 

애플리케이션에서는 sl4j의 구현체인 logback을 사용하여 로깅 처리를 하도록 개발하였다.

 

원인을 찾아보니 Wildfly의 경우 내부적으로 Sl4j를 포함하고 있어 자체 Sl4j 라이브러리를 비활성화 하지 않을 경우 애플리케이션 내부에 있는 Sl4j 라이브러리와 설정 충돌이 발생하여 애플리케이션의 로깅 관련 설정(경로, 파일 이름 등)이 무시되는 것으로 확인되었다.

 

Wildfly 애플리케이션 설정 파일(ex. standalone.xml)에 접근하여 아래 설정을 추가하면 Wildfly 자체 Sl4j는 비활성화되어 애플리케이션의 Sl4j와 충돌이 일어나지 않게 된다.

 

<add-logging-api-dependencies value="false"/>

 

예시 : 

        <subsystem xmlns="urn:jboss:domain:logging:8.0">
<!--        (log4j, slf4j)logging module exclusions, under 2 line-->
<!--        <use-deployment-logging-config value="false"/>-->
            <add-logging-api-dependencies value="false"/>

 

참고 문서 내용 : https://docs.wildfly.org/23/wildscribe/subsystem/logging/index.html

Comments