我正在使用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