Repository: logging-log4j2 Updated Branches: refs/heads/master f28d3d8b4 -> 5644b1322
[LOG4J2-1232] Incorrect log rotation in last week of year. Sort methods. Project: http://git-wip-us.apache.org/repos/asf/logging-log4j2/repo Commit: http://git-wip-us.apache.org/repos/asf/logging-log4j2/commit/5644b132 Tree: http://git-wip-us.apache.org/repos/asf/logging-log4j2/tree/5644b132 Diff: http://git-wip-us.apache.org/repos/asf/logging-log4j2/diff/5644b132 Branch: refs/heads/master Commit: 5644b13228139ae22062b8590d1b1ee857a1f6b4 Parents: f28d3d8 Author: ggregory <[email protected]> Authored: Thu Dec 31 18:51:42 2015 -0800 Committer: ggregory <[email protected]> Committed: Thu Dec 31 18:51:42 2015 -0800 ---------------------------------------------------------------------- .../appender/rolling/PatternProcessorTest.java | 244 +++++++++---------- 1 file changed, 122 insertions(+), 122 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/logging-log4j2/blob/5644b132/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessorTest.java ---------------------------------------------------------------------- diff --git a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessorTest.java b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessorTest.java index c06b815..f366877 100644 --- a/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessorTest.java +++ b/log4j-core/src/test/java/org/apache/logging/log4j/core/appender/rolling/PatternProcessorTest.java @@ -38,177 +38,143 @@ public class PatternProcessorTest { } @Test - public void testGetNextTimeMonthlyReturnsFirstDayOfNextMonth() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); - final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.OCTOBER, 15, 10, 31, 59); // Oct 15th - final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + public void testDontInterpretBackslashAsEscape() { + final PatternProcessor pp = new PatternProcessor("c:\\test\\new/app-%d{HH-mm-ss}.log"); + final Calendar cal = Calendar.getInstance(); + cal.set(Calendar.HOUR_OF_DAY, 16); + cal.set(Calendar.MINUTE, 02); + cal.set(Calendar.SECOND, 15); - // We expect 1st day of next month - final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.NOVEMBER, 1, 00, 00, 00); - expected.set(Calendar.MILLISECOND, 0); - assertEquals(format(expected.getTimeInMillis()), format(actual)); + final StringBuilder buf = new StringBuilder(); + pp.formatFileName(buf, cal.getTime(), 23); + assertEquals("c:\\test\\new/app-16-02-15.log", buf.toString()); } @Test - public void testGetNextTimeMonthlyReturnsFirstDayOfNextYear() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); + public void testGetNextTimeHourlyReturnsFirstMinuteOfNextHour() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2015, Calendar.DECEMBER, 28, 0, 0, 0); + initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014, 10:31 final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // We expect 1st day of next month + // expect Wed, March 4, 2014, 11:00 final Calendar expected = Calendar.getInstance(); - expected.set(2016, Calendar.JANUARY, 1, 00, 00, 00); + expected.set(2014, Calendar.MARCH, 4, 11, 00, 00); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeMonthlyReturnsFirstDayOfNextMonth2() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); + public void testGetNextTimeHourlyReturnsFirstMinuteOfNextHour2() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.JANUARY, 31, 10, 31, 59); // 2014 Jan 31st + initial.set(2014, Calendar.MARCH, 4, 23, 31, 59); // Tue, March 4, 2014, 23:31 final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // Expect 1st of next month: 2014 Feb 1st + // expect Wed, March 5, 2014, 00:00 final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.FEBRUARY, 1, 00, 00, 00); + expected.set(2014, Calendar.MARCH, 5, 00, 00, 00); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeMonthlyReturnsFirstDayOfNextMonth3() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); + public void testGetNextTimeHourlyReturnsFirstMinuteOfNextYear() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.DECEMBER, 31, 10, 31, 59); // 2014 Dec 31st + initial.set(2015, Calendar.DECEMBER, 31, 23, 31, 59); final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // Expect 1st of next month: 2015 Jan 1st final Calendar expected = Calendar.getInstance(); - expected.set(2015, Calendar.JANUARY, 1, 00, 00, 00); + expected.set(2016, Calendar.JANUARY, 1, 0, 0, 0); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - @Ignore("https://issues.apache.org/jira/browse/LOG4J2-1232") - public void testGetNextTimeWeeklyReturnsFirstWeekInYear_US() { - final Locale old = Locale.getDefault(); - Locale.setDefault(Locale.US); // force 1st day of the week to be Sunday - try { - final PatternProcessor pp = new PatternProcessor("logs/market_data_msg.log-%d{yyyy-MM-'W'W}"); - final Calendar initial = Calendar.getInstance(); - initial.set(2015, Calendar.DECEMBER, 28, 00, 00, 00); // Monday, December 28, 2015 - final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - - // expect Monday January 4, 2016 - final Calendar expected = Calendar.getInstance(); - expected.set(2016, Calendar.JANUARY, 4, 00, 00, 00); - expected.set(Calendar.MILLISECOND, 0); - assertEquals(format(expected.getTimeInMillis()), format(actual)); - } finally { - Locale.setDefault(old); - } - } - - @Test - public void testGetNextTimeWeeklyReturnsFirstDayOfNextWeek_US() { - final Locale old = Locale.getDefault(); - Locale.setDefault(Locale.US); // force 1st day of the week to be Sunday - - try { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-W}.log.gz"); - final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014 - final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + public void testGetNextTimeMillisecondlyReturnsNextMillisec() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH-mm-ss.SSS}.log.gz"); + final Calendar initial = Calendar.getInstance(); + initial.set(2014, Calendar.MARCH, 4, 10, 31, 53); // Tue, March 4, 2014, 10:31:53.123 + initial.set(Calendar.MILLISECOND, 123); + assertEquals("2014/03/04 10:31:53.123", format(initial.getTimeInMillis())); + final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // expect Sunday, March 9, 2014 - final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.MARCH, 9, 00, 00, 00); - expected.set(Calendar.MILLISECOND, 0); - assertEquals(format(expected.getTimeInMillis()), format(actual)); - } finally { - Locale.setDefault(old); - } + // expect Tue, March 4, 2014, 10:31:53.124 + final Calendar expected = Calendar.getInstance(); + expected.set(2014, Calendar.MARCH, 4, 10, 31, 53); + expected.set(Calendar.MILLISECOND, 124); + assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeWeeklyReturnsFirstDayOfNextWeek_FRANCE() { - final Locale old = Locale.getDefault(); - Locale.setDefault(Locale.FRANCE); // force 1st day of the week to be Monday - - try { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-W}.log.gz"); - final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014 - final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + public void testGetNextTimeMinutelyReturnsFirstSecondOfNextMinute() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH-mm}.log.gz"); + final Calendar initial = Calendar.getInstance(); + initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014, 10:31 + initial.set(Calendar.MILLISECOND, 0); + assertEquals("2014/03/04 10:31:59.000", format(initial.getTimeInMillis())); + final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // expect Monday, March 10, 2014 - final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.MARCH, 10, 00, 00, 00); - expected.set(Calendar.MILLISECOND, 0); - assertEquals(format(expected.getTimeInMillis()), format(actual)); - } finally { - Locale.setDefault(old); - } + // expect Tue, March 4, 2014, 10:32 + final Calendar expected = Calendar.getInstance(); + expected.set(2014, Calendar.MARCH, 4, 10, 32, 00); + expected.set(Calendar.MILLISECOND, 0); + assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeHourlyReturnsFirstMinuteOfNextHour() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH}.log.gz"); + public void testGetNextTimeMonthlyReturnsFirstDayOfNextMonth() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014, 10:31 + initial.set(2014, Calendar.OCTOBER, 15, 10, 31, 59); // Oct 15th final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // expect Wed, March 4, 2014, 11:00 + // We expect 1st day of next month final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.MARCH, 4, 11, 00, 00); + expected.set(2014, Calendar.NOVEMBER, 1, 00, 00, 00); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeHourlyReturnsFirstMinuteOfNextYear() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH}.log.gz"); + public void testGetNextTimeMonthlyReturnsFirstDayOfNextMonth2() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2015, Calendar.DECEMBER, 31, 23, 31, 59); + initial.set(2014, Calendar.JANUARY, 31, 10, 31, 59); // 2014 Jan 31st final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + // Expect 1st of next month: 2014 Feb 1st final Calendar expected = Calendar.getInstance(); - expected.set(2016, Calendar.JANUARY, 1, 0, 0, 0); + expected.set(2014, Calendar.FEBRUARY, 1, 00, 00, 00); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeHourlyReturnsFirstMinuteOfNextHour2() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH}.log.gz"); + public void testGetNextTimeMonthlyReturnsFirstDayOfNextMonth3() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.MARCH, 4, 23, 31, 59); // Tue, March 4, 2014, 23:31 + initial.set(2014, Calendar.DECEMBER, 31, 10, 31, 59); // 2014 Dec 31st final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // expect Wed, March 5, 2014, 00:00 + // Expect 1st of next month: 2015 Jan 1st final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.MARCH, 5, 00, 00, 00); + expected.set(2015, Calendar.JANUARY, 1, 00, 00, 00); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @Test - public void testGetNextTimeMinutelyReturnsFirstSecondOfNextMinute() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH-mm}.log.gz"); + public void testGetNextTimeMonthlyReturnsFirstDayOfNextYear() { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM}.log.gz"); final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014, 10:31 - initial.set(Calendar.MILLISECOND, 0); - assertEquals("2014/03/04 10:31:59.000", format(initial.getTimeInMillis())); + initial.set(2015, Calendar.DECEMBER, 28, 0, 0, 0); final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); - // expect Tue, March 4, 2014, 10:32 + // We expect 1st day of next month final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.MARCH, 4, 10, 32, 00); + expected.set(2016, Calendar.JANUARY, 1, 00, 00, 00); expected.set(Calendar.MILLISECOND, 0); assertEquals(format(expected.getTimeInMillis()), format(actual)); } @@ -230,31 +196,65 @@ public class PatternProcessorTest { } @Test - public void testGetNextTimeMillisecondlyReturnsNextMillisec() { - final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-dd-HH-mm-ss.SSS}.log.gz"); - final Calendar initial = Calendar.getInstance(); - initial.set(2014, Calendar.MARCH, 4, 10, 31, 53); // Tue, March 4, 2014, 10:31:53.123 - initial.set(Calendar.MILLISECOND, 123); - assertEquals("2014/03/04 10:31:53.123", format(initial.getTimeInMillis())); - final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + public void testGetNextTimeWeeklyReturnsFirstDayOfNextWeek_FRANCE() { + final Locale old = Locale.getDefault(); + Locale.setDefault(Locale.FRANCE); // force 1st day of the week to be Monday - // expect Tue, March 4, 2014, 10:31:53.124 - final Calendar expected = Calendar.getInstance(); - expected.set(2014, Calendar.MARCH, 4, 10, 31, 53); - expected.set(Calendar.MILLISECOND, 124); - assertEquals(format(expected.getTimeInMillis()), format(actual)); + try { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-W}.log.gz"); + final Calendar initial = Calendar.getInstance(); + initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014 + final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + + // expect Monday, March 10, 2014 + final Calendar expected = Calendar.getInstance(); + expected.set(2014, Calendar.MARCH, 10, 00, 00, 00); + expected.set(Calendar.MILLISECOND, 0); + assertEquals(format(expected.getTimeInMillis()), format(actual)); + } finally { + Locale.setDefault(old); + } } @Test - public void testDontInterpretBackslashAsEscape() { - final PatternProcessor pp = new PatternProcessor("c:\\test\\new/app-%d{HH-mm-ss}.log"); - final Calendar cal = Calendar.getInstance(); - cal.set(Calendar.HOUR_OF_DAY, 16); - cal.set(Calendar.MINUTE, 02); - cal.set(Calendar.SECOND, 15); + public void testGetNextTimeWeeklyReturnsFirstDayOfNextWeek_US() { + final Locale old = Locale.getDefault(); + Locale.setDefault(Locale.US); // force 1st day of the week to be Sunday - final StringBuilder buf = new StringBuilder(); - pp.formatFileName(buf, cal.getTime(), 23); - assertEquals("c:\\test\\new/app-16-02-15.log", buf.toString()); + try { + final PatternProcessor pp = new PatternProcessor("logs/app-%d{yyyy-MM-W}.log.gz"); + final Calendar initial = Calendar.getInstance(); + initial.set(2014, Calendar.MARCH, 4, 10, 31, 59); // Tue, March 4, 2014 + final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + + // expect Sunday, March 9, 2014 + final Calendar expected = Calendar.getInstance(); + expected.set(2014, Calendar.MARCH, 9, 00, 00, 00); + expected.set(Calendar.MILLISECOND, 0); + assertEquals(format(expected.getTimeInMillis()), format(actual)); + } finally { + Locale.setDefault(old); + } + } + + @Test + @Ignore("https://issues.apache.org/jira/browse/LOG4J2-1232") + public void testGetNextTimeWeeklyReturnsFirstWeekInYear_US() { + final Locale old = Locale.getDefault(); + Locale.setDefault(Locale.US); // force 1st day of the week to be Sunday + try { + final PatternProcessor pp = new PatternProcessor("logs/market_data_msg.log-%d{yyyy-MM-'W'W}"); + final Calendar initial = Calendar.getInstance(); + initial.set(2015, Calendar.DECEMBER, 28, 00, 00, 00); // Monday, December 28, 2015 + final long actual = pp.getNextTime(initial.getTimeInMillis(), 1, false); + + // expect Monday January 4, 2016 + final Calendar expected = Calendar.getInstance(); + expected.set(2016, Calendar.JANUARY, 4, 00, 00, 00); + expected.set(Calendar.MILLISECOND, 0); + assertEquals(format(expected.getTimeInMillis()), format(actual)); + } finally { + Locale.setDefault(old); + } } }
