Index: log4j-async/src/test/java/org/apache/logging/log4j/async/AsyncLoggerLocationTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/AsyncLoggerLocationTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/AsyncLoggerLocationTest.java (working copy) @@ -32,7 +32,7 @@ @Test public void testAsyncLogWritesToLog() throws Exception { - File f = new File("AsyncLoggerLocationTest.log"); + File f = new File("target", "AsyncLoggerLocationTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/java/org/apache/logging/log4j/async/AsyncLoggerTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/AsyncLoggerTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/AsyncLoggerTest.java (working copy) @@ -32,7 +32,7 @@ @Test public void testAsyncLogWritesToLog() throws Exception { - File f = new File("AsyncLoggerTest.log"); + File f = new File("target", "AsyncLoggerTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastFileAppenderLocationTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastFileAppenderLocationTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastFileAppenderLocationTest.java (working copy) @@ -23,7 +23,7 @@ @Test public void testLocationIncluded() throws Exception { - File f = new File("FastFileAppenderLocationTest.log"); + File f = new File("target", "FastFileAppenderLocationTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastFileAppenderTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastFileAppenderTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastFileAppenderTest.java (working copy) @@ -23,7 +23,7 @@ @Test public void testFlushAtEndOfBatch() throws Exception { - File f = new File("FastFileAppenderTest.log"); + File f = new File("target", "FastFileAppenderTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderLocationTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderLocationTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderLocationTest.java (working copy) @@ -23,7 +23,7 @@ @Test public void testLocationIncluded() throws Exception { - File f = new File("FastRollingFileAppenderLocationTest.log"); + File f = new File("target", "FastRollingFileAppenderLocationTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderRolloverTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderRolloverTest.java (revision 0) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderRolloverTest.java (working copy) @@ -0,0 +1,75 @@ +package org.apache.logging.log4j.async.appender; + +import static org.junit.Assert.*; + +import java.io.BufferedReader; +import java.io.File; +import java.io.FileReader; +import java.util.Arrays; + +import org.apache.logging.log4j.LogManager; +import org.apache.logging.log4j.Logger; +import org.apache.logging.log4j.core.LifeCycle; +import org.apache.logging.log4j.core.config.XMLConfigurationFactory; +import org.junit.BeforeClass; +import org.junit.Test; + +public class FastRollingFileAppenderRolloverTest { + + @BeforeClass + public static void beforeClass() { + System.setProperty(XMLConfigurationFactory.CONFIGURATION_FILE_PROPERTY, + "FastRollingFileAppenderTest.xml"); + } + + @Test + public void testRollover() throws Exception { + File f = new File("target", "FastRollingFileAppenderTest.log"); + // System.out.println(f.getAbsolutePath()); + File after1 = new File("target", "afterRollover-1.log"); + f.delete(); + after1.delete(); + + Logger log = LogManager.getLogger("com.foo.Bar"); + String msg = "First a short message that does not trigger rollover"; + log.info(msg); + Thread.sleep(50); + + BufferedReader reader = new BufferedReader(new FileReader(f)); + String line1 = reader.readLine(); + assertTrue(line1.contains(msg)); + reader.close(); + + assertFalse("afterRollover-1.log not created yet", after1.exists()); + + String exceed = "Long message that exceeds rollover size... "; + char[] padding = new char[250]; + Arrays.fill(padding, 'X'); + exceed += new String(padding); + log.warn(exceed); + assertFalse("exceeded size but afterRollover-1.log not created yet", after1.exists()); + + String trigger = "This message triggers rollover."; + log.warn(trigger); + + ((LifeCycle) LogManager.getContext()).stop(); // stop async thread + + assertTrue("afterRollover-1.log created", after1.exists()); + + reader = new BufferedReader(new FileReader(f)); + String new1 = reader.readLine(); + assertTrue("after rollover only new msg", new1.contains(trigger)); + assertNull("No more lines", reader.readLine()); + reader.close(); + f.delete(); + + reader = new BufferedReader(new FileReader(after1)); + String old1 = reader.readLine(); + assertTrue("renamed file line 1", old1.contains(msg)); + String old2 = reader.readLine(); + assertTrue("renamed file line 2", old2.contains(exceed)); + assertNull("No more lines", reader.readLine()); + reader.close(); + after1.delete(); + } +} Index: log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/appender/FastRollingFileAppenderTest.java (working copy) @@ -23,7 +23,7 @@ @Test public void testFlushAtEndOfBatch() throws Exception { - File f = new File("FastRollingFileAppenderTest.log"); + File f = new File("target", "FastRollingFileAppenderTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/java/org/apache/logging/log4j/async/config/AsyncLoggerConfigTest.java =================================================================== --- log4j-async/src/test/java/org/apache/logging/log4j/async/config/AsyncLoggerConfigTest.java (revision 1463762) +++ log4j-async/src/test/java/org/apache/logging/log4j/async/config/AsyncLoggerConfigTest.java (working copy) @@ -23,7 +23,7 @@ @Test public void testAdditivity() throws Exception { - File f = new File("AsyncLoggerConfigTest.log"); + File f = new File("target", "AsyncLoggerConfigTest.log"); // System.out.println(f.getAbsolutePath()); f.delete(); Logger log = LogManager.getLogger("com.foo.Bar"); Index: log4j-async/src/test/resources/AsyncLoggerConfigTest.xml =================================================================== --- log4j-async/src/test/resources/AsyncLoggerConfigTest.xml (revision 1463762) +++ log4j-async/src/test/resources/AsyncLoggerConfigTest.xml (working copy) @@ -1,7 +1,7 @@ - + %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n Index: log4j-async/src/test/resources/AsyncLoggerLocationTest.xml =================================================================== --- log4j-async/src/test/resources/AsyncLoggerLocationTest.xml (revision 1463762) +++ log4j-async/src/test/resources/AsyncLoggerLocationTest.xml (working copy) @@ -1,7 +1,7 @@ - %d %p %c{1.} [%t] %X{aKey} %location %m %ex%n Index: log4j-async/src/test/resources/AsyncLoggerTest.xml =================================================================== --- log4j-async/src/test/resources/AsyncLoggerTest.xml (revision 1463762) +++ log4j-async/src/test/resources/AsyncLoggerTest.xml (working copy) @@ -1,7 +1,7 @@ - %d %p %c{1.} [%t] %X{aKey} %location %m %ex%n Index: log4j-async/src/test/resources/FastFileAppenderLocationTest.xml =================================================================== --- log4j-async/src/test/resources/FastFileAppenderLocationTest.xml (revision 1463762) +++ log4j-async/src/test/resources/FastFileAppenderLocationTest.xml (working copy) @@ -1,7 +1,7 @@ - + %d %p %c{1.} [%t] %X{aKey} %m %location %ex%n