新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
软件生存周期中,涉及代码运行的环节有编码、测试和维护阶段,而一套成熟的代码,在此三个阶段,数据库、日志路径、日志级别、线程池大小等配置一般会不一样。作为开发人员,希望将代码与配置解耦合,不同的环境,代码一套,而配置多套。
创新互联公司主营鼓楼网站建设的网络公司,主营网站建设方案,app开发定制,鼓楼h5小程序开发搭建,鼓楼网站营销推广欢迎鼓楼等地区企业咨询针对于多环境的配置,可以使用maven的profile及filter配置,在打包环节通过打包命令 mvn clean package -P dev/test/product决定所打环境的war/jar包。此种解决方案,产生的war\jar包在不同环境的是不同的,因此MD5校验和也不同。一次敏捷开发结束后,开发、测试、线上的的war/jar包,只能人为添加标识来识别,比如test-1.0.1和prod-1.0.1是功能相同、环境不同的war/jar包。如果是spring boot项目,可以使用yaml配置,实现多环境配置,在项目启动时,通过添加参数--spring.profiles.active=dev/test/production,指定项目运行的环境。此方案的jar包在不同运行环境均是一个,不会出现测试与生产的war/jar包代码不一致的问题(第一种方案在测试打包后,生产打包前,可能会有代码提交,需人工控制此阶段的行为)。
本文基于第二种配置方案,但在使用logback作为日志方案时,产生了一些问题, 具体见下文。
问题1:
使用application.yml配置多环境变量,使用logback.xml实现日志配置,不能实现多环境配置(即logback配置未生效),打印的日志路径和日志级别不是配置文件中的值。
项目配置文件-application.yml
spring: profiles.active: dev --- spring: profiles: dev log: path: ./logs level: debug --- spring: profiles: test log: path: /home/user/logs/ level: info ---