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

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

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

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


            
                org.apache.maven.plugins
                maven-resources-plugin
                2.6
                
                    
                        copy-resources
                        compile
                        
                            copy-resources
                        
                        
                            
                            true
                            ${project.build.outputDirectory}
                            
                            
                            
                                
                                    
                                    src/main/resources/filters/${package.env}
                                    false
                                
                            
                        
                    
                
            

项目目录如图所示:


spring-boot中实现logback不同环境不同配置的方法_第1张图片
image.png

你可能感兴趣的:(spring-boot中实现logback不同环境不同配置的方法)