使用maven profile配置运行不同环境和日志

来源:互联网 发布:总管家软件 编辑:程序博客网 时间:2024/06/04 08:02
今天在优化项目的时候,发现自己的日志有点乱,几个环境打包后输出的东西都是一样。实际上开发和测试环境日志的级别是debug,无可厚非,毕竟便于调试嘛,但是线上环境本身是一个相对稳定的环境,一般日志级别会调成info以上,为了避免在不同环境之间切换,现在介绍一下使用maven profile来打包不同环境下的运行包。

一般为开发测试正式三个环境,通过maven可以实现按不同环境进行打包部署,命令为: mvn package -Pdev 其中“dev“为环境的变量id, 可以自己定义, 我定义的名称为:dev,test,prd, 具体在pom.xml中的配置如下:


阿里巴巴编程规范建议:

【推荐】谨慎地记录日志。生产环境禁止输出 debug 日志;有选择地输出 info 日志;如果使用 warn 来记录刚上线时的业务行为信息,一定要注意日志输出量的问题,避免把服务器磁盘撑爆,并记得及时删除这些观察日志。说明:大量地输出无效日志,不利于系统性能提升,也不利于快速定位错误点。纪录日志时请思考:这些日志真的有人看吗?看到这条日志你能做什么?能不能给问题排查带来好处?

<profiles><profile><id>dev</id><properties><log.level>DEBUG</log.level><default.appender>CONSOLE</default.appender></properties><activation><activeByDefault>true</activeByDefault></activation></profile><profile><id>test</id><properties><log.level>DEBUG</log.level><default.appender>CONSOLE</default.appender></properties></profile><profile><id>prd</id><properties><log.level>INFO</log.level><default.appender>DO-NOTHING-APPENDER</default.appender></properties></profile></profiles><build><finalName>couponToB</finalName><resources><resource><directory>src/main/resources</directory><filtering>true</filtering></resource></resources></build>

1.profiles定义了各个环境的变量id(dev,test,prd)

2.可选项:filters中定义了变量配置文件的地址,其中地址中的环境变量就是上面profile中定义的值,此时如果有多个环境配置可以指定文件

                <filters><filter>filter/${env}/settings.properties</filter></filters>

3.resources中是定义哪些目录下的文件会被配置文件中定义的变量替换,一般我们会把项目的配置文件放在src/main/resources类路径下,像数据库,缓存(redis)等,里面用到的变量在打包时就会根据filter中的变量配置替换成固定值。

<filtering>true</filtering>表示开启变量替换功能,将<properties></properties>里面的变量值替换类路径文件中的含有${var}类型的变量。


1 0
原创粉丝点击