In computeCheckPeriod(), the check for HALF_DAY always returns true before the check for TOP_OF_DAY. Whenever I specified yyyy-MM-dd as my datePattern, the result was always to settle on a half-day rotation. I've hacked my copy of the source to fix the problem, but the real fix should probably be to add a new configuration directive for the rolling interval instead of inferring it from the datePattern.
Created attachment 1437 [details] Simple hack to get around the TOP_OF_DAY vs HALF_DAY datePattern problem
Sean, What timezone are you in?
I experienced the problem on a Solaris machine set to US/Eastern. I'm in the EST timezone.
Sean, As you reported, there was a problem with the way the DailyRollingFileAppender computed the rollover preriod in certain timezones. This has been corrected in the log4j version which is in our CVS repository. Please reopen this bug if it does not work for you.
*** Bug 7515 has been marked as a duplicate of this bug. ***