I want a new log file to be created every time an application starts. I translate this wish into "roll the log upon the first log statement emitted by the application after it starts".

It seemed pretty trivial to implement this but I can't get it to work.

1. I created a policy:
==============================================================================
package com.whatever.logging;

import java.io.File;

import ch.qos.logback.core.rolling.TriggeringPolicyBase;

/**
 * This policy causes a log to be rolled over with the first log statement
 * of every program run.
 */
public class LogPerRunTriggeringPolicy<E> extends TriggeringPolicyBase<E> {
        private static boolean rollMeOver = true;
        /* (non-Javadoc)
* @see ch.qos.logback.core.rolling.TriggeringPolicy#isTriggeringEvent(java.io.File, java.lang.Object)
         */
        @Override
        public boolean isTriggeringEvent(File activeFile, E event) {
                boolean rollStatus = rollMeOver;
                if (rollMeOver) {
                        System.out.println("rollover will be triggered");
                        rollMeOver = false;
                }
                return rollStatus;
        }

}
=================================================================================
and an appender using that policy:

        <appender name="Conversation"
                class="ch.qos.logback.core.rolling.RollingFileAppender">
                <File>${logdir}/conversation.log</File>
<rollingPolicy class="ch.qos.logback.core.rolling.FixedWindowRollingPolicy">
                        <fileNamePattern>conversation.%i.log</fileNamePattern>
                        <minIndex>1</minIndex>
                        <maxIndex>6</maxIndex>
                </rollingPolicy>
<triggeringPolicy class="com.whatever.logging.LogPerRunTriggeringPolicy" />
                <encoder>
                        <pattern>%d [%t] %-5p %c{2} - %m%n</pattern>
                </encoder>
        </appender>
=================================================================================
But the log never rolls.  What am I doing wrong?






_______________________________________________
Logback-user mailing list
[email protected]
http://mailman.qos.ch/mailman/listinfo/logback-user

Reply via email to