SLING-7660 - LogManager configuration "Number of Log Files" limited to 20
diff --git a/src/main/java/org/apache/sling/commons/log/logback/internal/LogWriter.java b/src/main/java/org/apache/sling/commons/log/logback/internal/LogWriter.java
index 315d5f9..9308cf7 100644
--- a/src/main/java/org/apache/sling/commons/log/logback/internal/LogWriter.java
+++ b/src/main/java/org/apache/sling/commons/log/logback/internal/LogWriter.java
@@ -184,7 +184,12 @@
triggeringPolicy.start();
rollingAppender.setTriggeringPolicy(triggeringPolicy);
- FixedWindowRollingPolicy pol = new FixedWindowRollingPolicy();
+ FixedWindowRollingPolicy pol = new FixedWindowRollingPolicy() {
+ @Override
+ protected int getMaxWindowSize() {
+ return Integer.MAX_VALUE;
+ }
+ };
pol.setMinIndex(1);
pol.setMaxIndex(getLogNumber());
pol.setFileNamePattern(getFileName() + "%i");
diff --git a/src/test/java/org/apache/sling/commons/log/logback/internal/TestLogWriter.java b/src/test/java/org/apache/sling/commons/log/logback/internal/TestLogWriter.java
index 82530a6..e2f06c6 100644
--- a/src/test/java/org/apache/sling/commons/log/logback/internal/TestLogWriter.java
+++ b/src/test/java/org/apache/sling/commons/log/logback/internal/TestLogWriter.java
@@ -80,6 +80,20 @@
assertEquals("target/foo.%d{yyyy-MM}", tbrp.getFileNamePattern());
}
+ @Test
+ public void allowMoreThanTwentyOneLogFiles() {
+ LogWriter lw = new LogWriter("moreThanTwenty", "target/moreThanTwenty", 300, "4k");
+
+ Appender<ILoggingEvent> a = createappender(lw);
+ assertInstanceOf(a, SlingRollingFileAppender.class);
+ SlingRollingFileAppender sr = (SlingRollingFileAppender) a;
+
+ assertInstanceOf(sr.getRollingPolicy(), FixedWindowRollingPolicy.class);
+ FixedWindowRollingPolicy rollingPolicy = (FixedWindowRollingPolicy) sr.getRollingPolicy();
+
+ assertEquals(300, rollingPolicy.getMaxIndex());
+ }
+
private static Appender<ILoggingEvent> createappender(LogWriter lw) {
Encoder<ILoggingEvent> encoder = new PatternLayoutEncoder();
return lw.createAppender((Context) LoggerFactory.getILoggerFactory(), encoder);