branch, master, updated. 0908ef4dc8bebd0c8f38dbdd4c2d0282a01d77fb

The branch, master has been updated via 0908ef4dc8bebd0c8f38dbdd4c2d0282a01d77fb (commit) from 843489d8a2aefa978f32c6ad9b9ed1596ec113c8 (commit) Those revisions listed above that are new to this repository have not appeared on any other notification email; so we list those revisions in full, below. - Log ----------------------------------------------------------------- http://git.qos.ch/gitweb/?p=logback.git;a=commit;h=0908ef4dc8bebd0c8f38dbdd4... http://github.com/ceki/logback/commit/0908ef4dc8bebd0c8f38dbdd4c2d0282a01d77... commit 0908ef4dc8bebd0c8f38dbdd4c2d0282a01d77fb Author: Ceki Gulcu <ceki@qos.ch> Date: Sat Nov 28 23:36:03 2009 +0100 - Partial fix to LBGENERAL-35 diff --git a/logback-core/src/main/java/ch/qos/logback/core/rolling/DefaultTimeBasedFileNamingAndTriggeringPolicy.java b/logback-core/src/main/java/ch/qos/logback/core/rolling/DefaultTimeBasedFileNamingAndTriggeringPolicy.java index 6ad9bd7..ef19d9d 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/rolling/DefaultTimeBasedFileNamingAndTriggeringPolicy.java +++ b/logback-core/src/main/java/ch/qos/logback/core/rolling/DefaultTimeBasedFileNamingAndTriggeringPolicy.java @@ -32,6 +32,7 @@ public class DefaultTimeBasedFileNamingAndTriggeringPolicy<E> extends TimeBasedF public void start() { super.start(); archiveRemover = new DefaultArchiveRemover(tbrp.fileNamePattern, rc); + archiveRemover.setContext(context); started = true; } diff --git a/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/ArchiveRemover.java b/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/ArchiveRemover.java index 53cf5f7..a8b5c10 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/ArchiveRemover.java +++ b/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/ArchiveRemover.java @@ -15,12 +15,14 @@ package ch.qos.logback.core.rolling.helper; import java.util.Date; +import ch.qos.logback.core.spi.ContextAware; + /** * Given a date remove older archived log files. * * @author Ceki Gülcü */ -public interface ArchiveRemover { +public interface ArchiveRemover extends ContextAware { public void clean(Date now); public void setMaxHistory(int maxHistory); } \ No newline at end of file diff --git a/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/DefaultArchiveRemover.java b/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/DefaultArchiveRemover.java index c18b53c..32e7e56 100644 --- a/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/DefaultArchiveRemover.java +++ b/logback-core/src/main/java/ch/qos/logback/core/rolling/helper/DefaultArchiveRemover.java @@ -18,8 +18,10 @@ import java.util.Date; import ch.qos.logback.core.pattern.Converter; import ch.qos.logback.core.pattern.LiteralConverter; +import ch.qos.logback.core.spi.ContextAwareBase; -public class DefaultArchiveRemover implements ArchiveRemover { +public class DefaultArchiveRemover extends ContextAwareBase implements + ArchiveRemover { final FileNamePattern fileNamePattern; final RollingCalendar rc; @@ -36,32 +38,33 @@ public class DefaultArchiveRemover implements ArchiveRemover { boolean computeParentCleaningFlag(FileNamePattern fileNamePattern) { DateTokenConverter dtc = fileNamePattern.getDateTokenConverter(); // if the date pattern has a /, then we need parent cleaning - if(dtc.getDatePattern().indexOf('/') != -1) { + if (dtc.getDatePattern().indexOf('/') != -1) { return true; } - // if the literal string subsequent to the dtc contains a /, we also need + // if the literal string subsequent to the dtc contains a /, we also + // need // parent cleaning - + Converter<Object> p = fileNamePattern.headTokenConverter; - + // find the date converter - while(p != null) { - if(p instanceof DateTokenConverter) { + while (p != null) { + if (p instanceof DateTokenConverter) { break; } p = p.getNext(); } - - while(p != null) { - if(p instanceof LiteralConverter) { + + while (p != null) { + if (p instanceof LiteralConverter) { String s = p.convert(null); - if(s.indexOf('/') != -1) { + if (s.indexOf('/') != -1) { return true; } } p = p.getNext(); } - + // no /, so we don't need parent cleaning return false; } @@ -72,6 +75,7 @@ public class DefaultArchiveRemover implements ArchiveRemover { File file2Delete = new File(filename); if (file2Delete.exists() && file2Delete.isFile()) { file2Delete.delete(); + addInfo("deleting " + file2Delete); if (parentClean) { removeFolderIfEmpty(file2Delete.getParentFile(), 0); } @@ -92,6 +96,7 @@ public class DefaultArchiveRemover implements ArchiveRemover { return; } if (dir.isDirectory() && FileFilterUtil.isEmptyDirectory(dir)) { + addInfo("deleting folder [" + dir +"]"); dir.delete(); removeFolderIfEmpty(dir.getParentFile(), recursivityCount + 1); } diff --git a/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingWithArchiveRemovalTest.java b/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingWithArchiveRemovalTest.java index 4d1d697..2d3dcd4 100644 --- a/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingWithArchiveRemovalTest.java +++ b/logback-core/src/test/java/ch/qos/logback/core/rolling/TimeBasedRollingWithArchiveRemovalTest.java @@ -35,6 +35,7 @@ import ch.qos.logback.core.ContextBase; import ch.qos.logback.core.layout.EchoLayout; import ch.qos.logback.core.testUtil.RandomUtil; import ch.qos.logback.core.util.CoreTestConstants; +import ch.qos.logback.core.util.StatusPrinter; public class TimeBasedRollingWithArchiveRemovalTest { @@ -109,6 +110,7 @@ public class TimeBasedRollingWithArchiveRemovalTest { + "}/clean.txt.zip", MILLIS_IN_MONTH, maxHistory, numPeriods); int beginPeriod = Calendar.getInstance().get(Calendar.MONTH); boolean extraFolder = extraFolder(numPeriods, 12, beginPeriod, maxHistory); + StatusPrinter.print(context); check(expectedCountWithFolders(2, extraFolder)); } @@ -279,7 +281,8 @@ public class TimeBasedRollingWithArchiveRemovalTest { // year is 2012, and not 2013 (the current year). boolean extraFolder(int numPeriods, int periodsPerEra, int beginPeriod, int maxHistory) { - int remainder = (beginPeriod + numPeriods) % periodsPerEra; + int adjustedBegin = beginPeriod+1; + int remainder = ((adjustedBegin) + numPeriods) % periodsPerEra; return (remainder < maxHistory + 1); } ----------------------------------------------------------------------- Summary of changes: ...aultTimeBasedFileNamingAndTriggeringPolicy.java | 1 + .../core/rolling/helper/ArchiveRemover.java | 4 ++- .../core/rolling/helper/DefaultArchiveRemover.java | 29 +++++++++++-------- .../TimeBasedRollingWithArchiveRemovalTest.java | 5 +++- 4 files changed, 25 insertions(+), 14 deletions(-) hooks/post-receive -- Logback: the generic, reliable, fast and flexible logging framework.
participants (1)
-
git-noreply@pixie.qos.ch