본문 바로가기

Backend Develop/Spring Framework

[Spring] Log4j2를 Profile에 따라 다르게 사용하기

SpringBoot

SpringBoot의 경우 소스코드를 직접 구현하거나 수정할 필요없이 간단한 설정으로 처리 가능하다

resources의 application-{Profile}.properties 파일을 추가하면 프로파일에 해당하는 설정정보를 가져온다.
가령, application-dev.properties 라는 파일이 있다면 현재 프로파일이 dev 인 경우 해당 파일을 읽는다.
application-prd.properties 가 있다면 프로파일이 prd 인 경우 해당 파일을 읽는다.

 

그러면 프로파일에 맞는 속성파일에 log4j 설정파일 경로를 설정한다.

logging.config=classpath:log4j2-dev.xml

 

ServletContainerInitializer

서블릿 기반 웹이면 ServletContainerInitializer 인터페이스를 이용해서 web.xml을 대체할 수 있다. 스프링을 사용한다면 org.springframework.web.WebApplicationInitializer 를 구현하여 web.xml을 대체할 수 있다.

초기화 구문에 시스템 설정정보의 프로파일명을 가져와서 log4j 설정 파일 경로를 지정한다.

String profile = System.getProperty("spring.profiles.active");
Configurator.initialize(null, "classpath:log4j2-" + profile + ".xml");