如何使Glassfish对每个应用程序使用不同的配置

时间:2013-05-14 12:29:05

标签: tomcat jboss glassfish log4j jvm-arguments

我正在为我的应用程序服务器使用GlassFish,JBoss,Tomcat。

我想在local,dev,test和prod环境中为我的应用程序使用不同的log4j.properties。因此,每个项目的应用程序都应该有不同的log4j.properties文件。

例如:对于本地我不希望log4j发送邮件,但是在测试环境中发送电子邮件到x@domain.com prod发送电子邮件到y@domain.com。

另一个例子:

project x send mail       : -Dapp_conf_dir/projectx/log4j.properties
project y don't send mail : -Dapp_conf_dir/projecty/log4j.properties

我该怎么做?

顺便说一下,我使用Jenkins(Hudson)进行重新部署。

感谢。

Project X的log4j.properties文件示例:

log4j.rootLogger = DEBUG, console, file_out_debug, mail

# Email Appender Log Configuration
log4j.appender.mail=org.apache.log4j.net.SMTPAppender
#defines how othen emails are send
log4j.appender.mail.BufferSize=100000
log4j.appender.mail.SMTPHost=10.11.12.13
log4j.appender.mail.SMTPHost=smtp.domain.com
log4j.appender.email.SMTPUsername=user@domain.com
log4j.appender.email.SMTPPassword=***
log4j.appender.mail.From=Project X Error Web <projectx@domain.com>
log4j.appender.mail.To=email@domain.com 
log4j.appender.mail.Subject=Project X Error Web
log4j.appender.mail.threshold=ERROR
log4j.appender.mai.filter=org.apache.log4j.varia.LevelRangeFilter
log4j.appender.mai.filter.levelMin=ERROR
log4j.appender.mai.filter.levelMax=FATAL
log4j.appender.mail.layout=org.apache.log4j.PatternLayout
log4j.appender.mail.layout.ConversionPattern=Project X - %d{dd.MM.yyyy HH\:mm\:ss} %5p [%l] - %m %n\n

1 个答案:

答案 0 :(得分:0)

如果您使用maven,则可以为每种类型的构建创建配置文件(具有配置属性),并在构建之前启用所需的配置文件。因此,您可以在配置文件中使用配置文件设置。