개발 단계(alpha, beta, production)마다 파일을 따로 두면 관리도 힘들다. 잘 보이지 않는 단점이 있다. 이를 한 번에 처리할 수 있는 spring boot logback이 있다. 


logback-alpha.xml

logback-beta.xml

logback-production.xml



logback 파일에 springProfile을 적용할 수 있도록 할 수 있다. 다음은 logback 파일이다.

<configuration>

<include resource="org/springframework/boot/logging/logback/base.xml"/>

<logger name="org.springframework.web" level="info"/>
<logger name="com.google.gateway" level="debug" />
<springProfile name="production">
<logger name="com.google.gateway" level="info" />
</springProfile>

...



logback.xml 파일에 springProfile을 그대로 설정하면, 에러가 발생한다.


19:52:20.008 [restartedMain] ERROR o.s.b.SpringApplication - Application startup failed

java.lang.IllegalStateException: java.lang.IllegalStateException: Logback configuration error detected:

ERROR in ch.qos.logback.core.joran.spi.Interpreter@8:38 - no applicable action for [springProfile], current ElementPath  is [[configuration][springProfile]]

ERROR in ch.qos.logback.core.joran.spi.Interpreter@8:38 - no applicable action for [springProfile], current ElementPath  is [[configuration][springProfile]]

ERROR in ch.qos.logback.core.joran.spi.Interpreter@9:63 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]

ERROR in ch.qos.logback.core.joran.spi.Interpreter@9:63 - no applicable action for [logger], current ElementPath  is [[configuration][springProfile][logger]]

at org.springframework.boot.logging.LoggingApplicationListener.initializeSystem(LoggingApplicationListener.java:238) ~[spring-boot-1.3.0.BUILD-SNAPSHOT.jar:1.3.0.BUILD-SNAPSHOT]


spring boot가 logback 스탠다드 파일인 logback.xml을 어떻게 할 수 없기 때문에 발생한다.

이를 해결하려면, logback-spring.xml 이라는 파일로 복사해서 쓰도록 하면 에러가 발생하지 않는다.


logback.xml -> logback-spring.xml 




참고

http://docs.spring.io/spring-boot/docs/current-SNAPSHOT/reference/html/boot-features-logging.html

You cannot use extensions in the standard logback.xml configuration file since it’s loaded too early. You need to either use logback-spring.xml or define a logging.config property.




Posted by '김용환'
,