技术头条 - 一个快速在微博传播文章的方式     搜索本站
您现在的位置首页 --> 系统运维 --> 使用maven的profiles自动设置log4j线上环境和测试环境区别

使用maven的profiles自动设置log4j线上环境和测试环境区别

浏览:2296次  出处信息
前言
Maven是基于项目对象模型(POM),可以通过一小段描述信息来管理项目的构建,报告和文档的软件项目管理工具.   如果你已经有十次输入同样的Ant targets来编译你的代码、jar或者war、生成javadocs,你一定会自问,是否有一个重复性更少却能同样完成该工作的方法。Maven便提 供了这样一种选择,将你的注意力从作业层转移到项目管理层。Maven项目已经能够知道如何构建和捆绑代码,运行测试,生成文档并宿主项目网页.
项目的主页地址为:http://maven.apache.org/

深入
Profiles是maven的一个很关键的术语:profile是用来定义一些在build lifecycle中使用的environmental variations,profile可以设置成在不同的环境下激活不同的profile(例如:不同的OS激活不同的profile,不同的JVM激活不同的profile,不同的dabase激活不同的profile等等)。

实例
测试机环境,搞一个文件,比如说/data/test。
线上环境,不搞这个文件。
然后pom在project下如下写法:

<profiles>
<profile>
<id>produce</id>
<activation>
<activeByDefault>false</activeByDefault>
<file>
<missing>/data/test</missing>
</file>
</activation>
<properties>
<log4j.log.path>/opt/logs/xxx.log</log4j.log.path>
<log4j.debug.level>error</log4j.debug.level>
</properties>
</profile>
<profile>
<id>dev</id>
<activation>
<activeByDefault>true</activeByDefault>
</activation>
<properties>
<log4j.log.path>/opt/logs/xxx.log</log4j.log.path>
<log4j.debug.level>debug</log4j.debug.level>
</properties>
</profile>
</profiles>

log4j.xml文件设置
为了配合maven的设置属性,需要将log4j中使用的声明用成变量,片段举例:

<logger name=”com.xx.xx.xx.xx” additivity=”false”>
<level value=”${log4j.debug.level}”/>
<appender-ref ref=”dao”/>
</logger>

<root>
<level value=”${log4j.debug.level}”/>
<appender-ref ref=”service”/>
</root>

解释
这样,在运行mvn进行build项目的时候,如果线上环境,测试到/data/test文件是missing的,则会激活对应的设置,以此来达到线上环境改成error级别,而测试环境为debug级别

建议继续学习:

  1. Maven依赖机制简介    (阅读:1925)
  2. 闲话maven m2eclipse不再支持nested module的原因    (阅读:1638)
  3. 5分钟开始Maven    (阅读:1052)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:VPS完全指南
© 2009 - 2024 by blogread.cn 微博:@IT技术博客大学习

京ICP备15002552号-1