SpringBoot 不同環(huán)境,加載不同日志配置

開篇

??忽然想起好久不寫博客,今天就搞一個

背景

??現(xiàn)有項目集成的日志采集框架有點小問題,每次運行時,都會在日志加載這里卡頓半分鐘,非常影響工作效率.并且本地單測或者運行,也沒有日志采集的必要性,所以我們今天改造項目,實現(xiàn)不同環(huán)境下加載不同的日志配置,這樣在開發(fā)環(huán)境和測試環(huán)境下不再啟動日志采集的配置,加快項目啟動

Start

??項目 SpringBoot Version和Log Version

<properties>
  <spring-boot.version>2.1.8.RELEASE</spring-boot.version>
  <slf4j.version>1.7.14</slf4j.version>
  <logback.version>1.2.3</logback.version>
</properties>

One

??首先 maven 構(gòu)建時要有一個profile(鑒于所有項目都有profile,我這里貼一個簡單版本)

<profiles>
        <profile>
            <id>dev</id>
            <properties>
                <env>dev</env>             
            </properties>
        </profile>
        <profile>
            <id>test</id>
            <properties>
                <env>test</env>
            </properties>
            <activation>
                <activeByDefault>true</activeByDefault>
            </activation>
        </profile>
        <profile>
            <id>prev</id>
            <properties>
                <env>prev</env>
             </properties>
        </profile>
        <profile>
            <id>prod</id>
            <properties>
                <env>prod</env>
            </properties>
        </profile>
    </profiles>

Two

??添加 maven resource 插件 和 build resource過程 (這里必須要添加,保證maven 的 配置項 可以加載到 SpringBoot 中)

<build>
        <finalName>trade-service-inquire</finalName>
        <plugins>
            <plugin>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-maven-plugin</artifactId>
                <configuration>
                    <mainClass>com.ziroom.trade.rent.inquire.Application</mainClass>
                </configuration>
                <executions>
                    <execution>
                        <goals>
                            <goal>repackage</goal>
                        </goals>
                    </execution>
                </executions>
            </plugin>
            <!-- resource插件 -->
            <plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-resources-plugin</artifactId>
                <version>2.6</version>
                <configuration>
                    <encoding>UTF-8</encoding>
                </configuration>
            </plugin>
        </plugins>
        <resources>
            <resource>
                <directory>src/main/resources</directory>
                <filtering>true</filtering>
            </resource>
        </resources>
    </build>

Tree

??添加 SpringBoot 配置 (application.properties 文件中)

spring.profiles.active=@env@

Four

??改造原有的 logback-spring.xml 文件,使用 springProfile 包裹原有的日志配置,并通過 name 指定不同環(huán)境下的日志配置

    <springProfile name="test">
        <root level="INFO">
            <appender-ref ref="STDOUT"/>
            <appender-ref ref="allAppender"/>
        </root>
    </springProfile>

    <springProfile name="prod"> 
       <root level="DEBUG">
            <appender-ref ref="allAppender"/>
            <appender-ref ref="errorAppender"/>
       </root>
    </springProfile>

End

??整個改造的核心就是利用 maven 配置的profile 替換 springBoot 中的 profileActive,并利用 logback <springProfile>標(biāo)簽所提供能力(根據(jù)spring.profile.active 加載不同日志配置),實現(xiàn)不同環(huán)境下加載不同的日志配置

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容