Hi, I will use the variable substitution solution by changing the log4j.properties file :
log4j.logFileSuffix=... log4j.appender.file.File=/var/log/webapp-${logSuffix}.log The value will be overriden by each instances with -Dlog4j.logFileSuffix=whatever Thank you for your help ! Regards, Simon 2011/12/19 Daniel Mikusa <dmik...@vmware.com>: > On Mon, 2011-12-19 at 09:05 -0800, Leon Rosenberg wrote: >> Hello, >> >> you can specify the logoutput as relative path: >> instead of >> log4j.appender.file.File=/var/log/webapp.log >> to >> log4j.appender.file.File=logs/webapp.log >> and link the local file to the desired destination. >> > > +1 > > or if you don't want to use relative paths, you could use a variable > substitution. > > Ex: > > log4j.appender.file.File=${catalina.base}/logs/webapp.log > > > Property substitution is not limited to "catalina.base" (it's just easy > to use since it's defined automatically), Log4J can substitute any > system property. So you could define your own. > > Ex: > > In bin/setenv.sh... > > -Dmy.log.prefix=server1 > > In log4j.properties... > > log4j.appender.file.File=/var/log/${my.log.prefix}-webapp.log > > > For more details on property substitution. > > https://logging.apache.org/log4j/1.2/apidocs/org/apache/log4j/PropertyConfigurator.html > > > Dan > > > >> regards >> Leon >> >> On Mon, Dec 19, 2011 at 5:54 PM, Simon <spyd...@gmail.com> wrote: >> > Hi, >> > >> > Our webapp is packaged with the log4j framework (1.2.16) and a log4j >> > configuration that redirect all logs to a file on the server >> > filesystem. This log file is rotated when it reaches 50M. >> > >> > Here is the configuration detail : >> > >> > log4j.rootLogger=INFO, file >> > log4j.appender.file=org.apache.log4j.RollingFileAppender >> > log4j.appender.file.File=/var/log/webapp.log >> > log4j.appender.file.MaxFileSize=50000KB >> > log4j.appender.file.MaxBackupIndex=50 >> > log4j.appender.file.layout=org.apache.log4j.PatternLayout >> > log4j.appender.file.layout.ConversionPattern=%d %-5p %c - %m%n >> > >> > This configuration file is located inside the webapp.war archive at >> > /WEB-INF/classes/log4j.properties. >> > >> > In our production environment, we started with one tomcat instance and >> > everything was fine. The tomcat version is 5.5.20 and it is running on >> > the Oracle JVM 1.6.0_23-b05. >> > >> > >> > Unfortunately, when the infrastructure team added 2 other Tomcat >> > instances on the same server with the same webapp.war inside, some >> > logs were lost. The 2 instances are basically a complete copy of the >> > file tree of the first instance. Thus, there is 3 identical webapps >> > logging into the same log file simultaneously : >> > /tomcat/instance-1/webapps/webapp.war => /var/log/webapp.log >> > /tomcat/instance-2/webapps/webapp.war => /var/log/webapp.log >> > /tomcat/instance-3/webapps/webapp.war => /var/log/webapp.log >> > >> > My hypothesis is that as every webapp log to the same log file from a >> > different JVM (the tomcat instances), there could be some concurrency >> > issues when the rolling from log4j occurs !!! >> > >> > >> > I would like that each webapp logs to a particular file without having >> > a different log4j configuration packaged in the webapp.war archive. My >> > first idea was to modify the log4j configuration so the webapp will >> > log to the console (stdout) and then find a way to redirect the stdout >> > inside a Tomcat instance to a particular file : >> > /tomcat/instance-1/webapps/webapp.war => stdout => /var/log/webapp-1.log >> > /tomcat/instance-2/webapps/webapp.war => stdout => /var/log/webapp-2.log >> > /tomcat/instance-3/webapps/webapp.war => stdout => /var/log/webapp-3.log >> > >> > I know i could achieve that with the Resin application server through >> > the use of the <stdout /> configuration element >> > (http://caucho.com/resin-4.0/reference.xtp#stdoutlog, >> > http://caucho.com/resin-4.0/admin/logging.xtp). >> > >> > Is there a way to mimic this behaviour in Tomcat ? >> > >> > --------------------------------------------------------------------- >> > To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> > For additional commands, e-mail: users-h...@tomcat.apache.org >> > >> >> --------------------------------------------------------------------- >> To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org >> For additional commands, e-mail: users-h...@tomcat.apache.org >> --------------------------------------------------------------------- To unsubscribe, e-mail: users-unsubscr...@tomcat.apache.org For additional commands, e-mail: users-h...@tomcat.apache.org