1 /** 2 * Logback: the reliable, generic, fast and flexible logging framework. 3 * Copyright (C) 1999-2015, QOS.ch. All rights reserved. 4 * 5 * This program and the accompanying materials are dual-licensed under 6 * either the terms of the Eclipse Public License v1.0 as published by 7 * the Eclipse Foundation 8 * 9 * or (per the licensee's choosing) 10 * 11 * under the terms of the GNU Lesser General Public License version 2.1 12 * as published by the Free Software Foundation. 13 */ 14 package ch.qos.logback.core.rolling; 15 16 import java.io.File; 17 import java.util.concurrent.atomic.AtomicLong; 18 import java.util.concurrent.atomic.LongAdder; 19 20 import ch.qos.logback.core.spi.LifeCycle; 21 22 /** 23 * A <code>TriggeringPolicy</code> controls the conditions under which roll-over 24 * occurs. Such conditions include time of day, file size, an external event, 25 * the log request or a combination thereof. 26 * 27 * @author Ceki Gülcü 28 */ 29 30 public interface TriggeringPolicy<E> extends LifeCycle { 31 32 /** 33 * Return the {@link LengthCounter} instance associated with this triggering 34 * policy. The returned value may be null. 35 * 36 * @return a LengthCounter instance, may be null 37 * @since 1.5.8 38 */ 39 default LengthCounter getLengthCounter() { 40 return null; 41 } 42 43 /** 44 * Should roll-over be triggered at this time? 45 * 46 * @param activeFile A reference to the currently active log file. 47 * @param event A reference to the current event. 48 * @return true if a roll-over should occur. 49 */ 50 boolean isTriggeringEvent(final File activeFile, final E event); 51 }