我正在使用spring boot項目。如何將活動彈簧配置文件注入logback
環境:
ch.qos.logback:logback-core:jar:1.1.5
ch.qos.logback:logback-classic:jar:1.1.5
org.springframework.boot:spring-boot-starter-logging:jar:1.3.3.RELEASE
在我的項目我使用的是application.yml(應用dev.yml和應用production.yml)
性能由於春節的logback拉簧之前啓動我無法將spring.profiles.active注入到logback.xml文件中。
這是我logback.xml文件的簡化版本:
<configuration scan="true">
<property name="LOG_PATH" value="/var/log/" />
<property name="APP_NAME" value="xyz" />
<property name="PROFILE" value="-${spring.profiles.active}" />
<property name="CHARSET" value="utf-8" />
<property name="PATTERN" value="%d{HH:mm:ss.SSS} [%thread] %-5level %logger{36} - %msg%n" />
<appender name="APP-FILE" class="ch.qos.logback.core.rolling.RollingFileAppender">
<file>${LOG_PATH}${APP_NAME}${PROFILE}.log</file>
<encoder>
<charset>${CHARSET}</charset>
<Pattern>${PATTERN}</Pattern>
</encoder>
</appender>
<logger name="a.b.c" level="INFO">
<appender-ref ref="APP-FILE" />
</logger>
<root level="INFO">
<appender-ref ref="APP-FILE"/>
</root>
我要找的配置文件是屬性spring.profiles.active。
我的目標是對目錄中的日誌文件在/ var /日誌文件XYZ-dev的或XYZ生產但我得到XYZ-spring.profiles.active_IS_UNDEFINED.log,而不是當然的。
途徑:
1 - 使用的組件,如:
@Component
public class InitializationService implements ApplicationListener<ContextRefreshedEvent> {
// inject spring profile active into logback.xml
}
因爲春天的logback前延春啓動應用程序啓動的當然不是工作。
2 - 使用上logback.xml屬性這樣
<file>${LOG_PATH}${APP_NAME}${PROFILE}.log</file>
結果是XYZ-spring.profiles.active_IS_UNDEFINED.log
如果PROFILE是一個包含活動配置文件鍵值的屬性,它應該可以工作 – davidxxx
我正在尋找的PROFILE屬性是** spring.profiles.active **,它在application.yml中定義或通過命令線。 – Leonel