0

I am using GlassFish, JBoss, Tomcat for my application servers.

I want to use different log4j.properties for my applications on local, dev, test and prod envirment. So every project's application should have different log4j.properties file.

For example: For local I don't want log4j to send mail but on test env send email to x@domain.com on prod send email to y@domain.com.

On other example:

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

How can I do it?

By the way I am using Jenkins(Hudson) for re/deployment.

Thanks.

Sample log4j.properties file for Project X:

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
ahmet
  • 1,085
  • 2
  • 16
  • 32

1 Answers1

0

If you use maven you can create profiles (with configuration properties) for each type of build, and enable needed profile before build. So you can use profile settings in your configuration files.

Silence
  • 291
  • 2
  • 3
  • 13