[logback-user] Jetty: How to get multiple web applications log to a common log file
Gaurav Kumar
gaurav419 at gmail.com
Wed Oct 31 13:56:59 CET 2012
any suggestions will be really appreciated. I am totally stuck on this.
On Tue, Oct 30, 2012 at 11:39 PM, Gaurav Kumar <gaurav419 at gmail.com> wrote:
> Hi,
>
> [Please ignore the previous email with the same subject line. That was
> accidentally posted.]
>
>
> I am using Jetty webserver and logback for logging.
>
>
> I have a scenario with multiple Web Applications (so multiple wars into
> jetty/webapps dir). Each war has its own copy of logback-classic,
> logback-core and slf4j-api. There is a common copy of logback.xml in
> jetty/resources (pasted below). My intent is to maintain a logfile named
> "testapp.<date>.log" which should be used by all the wars for logging.
> Further, I want a rollover of this file on every startup. I am able to
> achieve this except that each war is trying to create its own version of
> the log file so when each war is loaded it creates its own logfile
> archiving the earlier logfile created by the earlier war. This continues
> till all wars are loaded thus creating these many log files per startup.
> The archived files are are named "testapp.<date>.log.<time in millisec>.
>
> Is there a way to ask all wars to log into the same file?
>
>
> *logback.xml file content:*
>
> **
> *<configuration>
> <timestamp key="dateStr" datePattern="yyyy-MM-dd"
> timeReference="contextBirth"/>-->
> <timestamp key="timeStr" datePattern="HHmmssSSS"
> timeReference="contextBirth"/>-->
>
> <appender name="STDOUT" class="ch.qos.logback.core.ConsoleAppender">
> <encoder>
> <pattern>%date{MMM dd}, %date{yyyy hh:mm:ss a} %class
> %method\(\):%line %n%level: %message%n </pattern>
> </encoder>
> </appender>
>
> <appender name="FILE"
> class="ch.qos.logback.core.rolling.RollingFileAppender">
> *
> * <file>${jetty.home}/logs/testapp.${dateStr}.log</file>
>
>
> <rollingPolicy
> class="ch.qos.logback.core.rolling.TimeBasedRollingPolicy">
> <!-- daily rollover -->
>
> <fileNamePattern>${jetty.home}/logs/testapp.%d{yyyy-MM-dd}.log.${timeStr}</fileNamePattern>
>
>
> <!-- keep max 30 rolled over files -->
> <maxHistory>30</maxHistory>
> <cleanHistoryOnStart>true</cleanHistoryOnStart>
>
> <!-- trigger for daily rollover and every server restart -->
> <timeBasedFileNamingAndTriggeringPolicy class="utils.
> LogbackLogTriggeringPolicy"/>
>
> </rollingPolicy>
>
> <encoder>
> <pattern>%date{MMM dd}, %date{yyyy hh:mm:ss a} %class
> %method\(\):%line %n%level: %message%n </pattern>
> </encoder>
> </appender>
>
> <root level="INFO">
> <appender-ref ref="FILE" />
> </root>
> </configuration>
> *
>
>
> *LogbackLogTriggeringPolicy.java is:*
>
> **
> *@NoAutoStart
> public class LogbackLogTriggeringPolicy<E> extends
> DefaultTimeBasedFileNamingAndTriggeringPolicy<E> {
> @Override
> public void start() {
> super.start();
> nextCheck = 0L;
> *
> * isTriggeringEvent(null, null);
> try {
> tbrp.rollover();
> } catch (RolloverFailure e) {
> //Do nothing
> }
> }
> }
> *
>
> Thanks.
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mailman.qos.ch/pipermail/logback-user/attachments/20121031/7e1e0311/attachment.html>
More information about the Logback-user
mailing list