You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-dev@logging.apache.org by "Nicko Cadell (JIRA)" <ji...@apache.org> on 2006/03/07 19:14:39 UTC

[jira] Updated: (LOG4NET-60) Bug in RollingFileAppender.cs causing failure to timely roll files on monthly interval

     [ http://issues.apache.org/jira/browse/LOG4NET-60?page=all ]

Nicko Cadell updated LOG4NET-60:
--------------------------------

    Summary: Bug in RollingFileAppender.cs causing failure to timely roll files on monthly interval  (was: possible bugs in RollingFileAppender.cs causing failure to timely roll files on monthly or yearly intervals (and inappropriate error reports on yearly intervals).)

> Bug in RollingFileAppender.cs causing failure to timely roll files on monthly interval
> --------------------------------------------------------------------------------------
>
>          Key: LOG4NET-60
>          URL: http://issues.apache.org/jira/browse/LOG4NET-60
>      Project: Log4net
>         Type: Bug
>   Components: Appenders
>     Versions: 1.2.9
>     Reporter: Lanchon
>     Assignee: Nicko Cadell
>      Fix For: 1.2.10

>
> code in said file looks like this
> 				case RollPoint.TopOfMonth:
> 					current = current.AddMilliseconds(-current.Millisecond);
> 					current = current.AddSeconds(-current.Second);
> 					current = current.AddMinutes(-current.Minute);
> 					current = current.AddHours(-current.Hour);
> 					current = current.AddMonths(1);
> 					break;
> i belive it should look something like this
> 				case RollPoint.TopOfMonth:
> 					current = current.AddMilliseconds(-current.Millisecond);
> 					current = current.AddSeconds(-current.Second);
> 					current = current.AddMinutes(-current.Minute);
> 					current = current.AddHours(-current.Hour);
> 					current = current.AddDays(1 - current.Day);      // this line seems to be needed
> 					current = current.AddMonths(1);
> 					break;
> also in a separate issue, since there is no RollPoint.TopOfYear, this comment in another part of the code seems wrong:
> 				//is the new file name equivalent to the 'current' one
> 				//something has gone wrong if we hit this -- we should only
> 				//roll over if the new file will be different from the old
> 				string dateFormat = m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo);
> 				if (m_scheduledFilename.Equals(File + dateFormat)) 
> 				{
> 					ErrorHandler.Error("Compare " + m_scheduledFilename + " : " + File + dateFormat);
> 					return;
> 				}
> if the date pattern specifies only the year (rolling yearly), then i think this "error" will be triggered incorrectly 11 times a year. it's fine not to roll, but reporting an error is inappropriate.

-- 
This message is automatically generated by JIRA.
-
If you think it was sent incorrectly contact one of the administrators:
   http://issues.apache.org/jira/secure/Administrators.jspa
-
For more information on JIRA, see:
   http://www.atlassian.com/software/jira