美文网首页
spring-boot中实现logback不同环境不同配置的方法

spring-boot中实现logback不同环境不同配置的方法

作者: wwbovo | 来源:发表于2019-10-28 17:24 被阅读0次

    背景
    项目: spring-boot+maven+logback
    项目环境分开发、测试、压测、预发布、生产环境等不同环境,不同环境的配置文件是不一样,日志打印需要根据不同的环境使用不同的配置,例如开发环境的日志等级是DEBUG,其他环境的日志等级是INFO;开发环境日志输出到控制台,其他环境日志输出到文件(不输出到控制台),还有生产环境需要配置elk。那么问题来了:

    不同环境设置不同的日志打印级别
    不同环境设置不同的日志输出设备(控制台、文件、db等)
    不同环境是否配置elk

    方案:
    1.在此之前的方案是通过maven打包读取application.yml中的配置后来不同环境标签也有所不同的需求,具体配置可以看我之前写的logback读取application.yml中的值实现多环境配置这篇文章。
    2.新的方案为通过maven打包插件maven-compiler-plugin实现在打包时替换xml文件,本文介绍的是第二种方案

    <!-- 不同环境的配置文件选择 -->
                <plugin>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-resources-plugin</artifactId>
                    <version>2.6</version>
                    <executions>
                        <execution>
                            <id>copy-resources</id>
                            <phase>compile</phase>
                            <goals>
                                <goal>copy-resources</goal>
                            </goals>
                            <configuration>
                                <!-- 覆盖原有文件 -->
                                <overwrite>true</overwrite>
                                <outputDirectory>${project.build.outputDirectory}</outputDirectory>
                                <!-- 也可以用下面这样的方式(指定相对url的方式指定outputDirectory) <outputDirectory>target/classes</outputDirectory> -->
                                <!-- 待处理的资源定义 -->
                                <resources>
                                    <resource>
                                        <!-- 指定resources插件处理哪个目录下的资源文件 -->
                                        <directory>src/main/resources/filters/${package.env}</directory>
                                        <filtering>false</filtering>
                                    </resource>
                                </resources>
                            </configuration>
                        </execution>
                    </executions>
                </plugin>
    

    项目目录如图所示:


    image.png

    相关文章

      网友评论

          本文标题:spring-boot中实现logback不同环境不同配置的方法

          本文链接:https://www.haomeiwen.com/subject/gsrkuctx.html