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

Reply via email to