[ https://issues.apache.org/jira/browse/LOG4NET-465?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=14597235#comment-14597235 ]
Dominik Psenner edited comment on LOG4NET-465 at 6/23/15 6:18 AM: ------------------------------------------------------------------ Hi Michel, thanks for this nice bug report. Haven't seen such a complete one in a long time. You've really put some effort in, didn' you? :-) I just now read your patch, to me this makes sense: {code} --- log4net-1.2.13\src\Appender\RollingFileAppender.cs Sun Nov 17 14:44:38 2013 UTC +++ log4net-1.2.13-fix\src\Appender\RollingFileAppender.cs Tue May 12 17:53:22 2015 UTC @@ -718,6 +718,10 @@ using(SecurityContext.Impersonate(this)) { fullPath = System.IO.Path.GetFullPath(m_baseFileName); + if (m_rollDate && !m_staticLogFileName) + { + fullPath = CombinePath(fullPath, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo)); + } fileName = System.IO.Path.GetFileName(fullPath); } {code} but you gotta explain me why you had to remove these lines: {code} --- log4net-1.2.13\src\Appender\RollingFileAppender.cs Sun Nov 17 14:44:38 2013 UTC +++ log4net-1.2.13-fix\src\Appender\RollingFileAppender.cs Tue May 12 17:53:22 2015 UTC @@ -901,19 +905,6 @@ } */ - // Only look for files in the current roll point - if (m_rollDate && !m_staticLogFileName) - { - string date = m_dateTime.Now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo); - string prefix = m_preserveLogFileNameExtension ? Path.GetFileNameWithoutExtension(baseFile) + date : baseFile + date; - string suffix = m_preserveLogFileNameExtension ? Path.GetExtension(baseFile) : ""; - if (!curFileName.StartsWith(prefix) || !curFileName.EndsWith(suffix)) - { - LogLog.Debug(declaringType, "Ignoring file ["+curFileName+"] because it is from a different date period"); - return; - } - } - try { // Bump the counter up to the highest count seen so far {code} Please don't think I'm nitpicky, I just wanna make sure we do not break existing functionality. Cheers was (Author: nachbarslumpi): Hi Michel, thanks for this nice bug report. Haven't seen such a complete one in a long time. You've really put some effort in, didn' you? :-) I just now read your patch, to me this makes sense: {code} --- log4net-1.2.13\src\Appender\RollingFileAppender.cs Sun Nov 17 14:44:38 2013 UTC +++ log4net-1.2.13-fix\src\Appender\RollingFileAppender.cs Tue May 12 17:53:22 2015 UTC @@ -718,6 +718,10 @@ using(SecurityContext.Impersonate(this)) { fullPath = System.IO.Path.GetFullPath(m_baseFileName); + if (m_rollDate && !m_staticLogFileName) + { + fullPath = CombinePath(fullPath, m_now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo)); + } fileName = System.IO.Path.GetFileName(fullPath); } {code} but you gotta explain me why you had to remove these lines: {code} --- log4net-1.2.13\src\Appender\RollingFileAppender.cs Sun Nov 17 14:44:38 2013 UTC +++ log4net-1.2.13-fix\src\Appender\RollingFileAppender.cs Tue May 12 17:53:22 2015 UTC @@ -901,19 +905,6 @@ } */ - // Only look for files in the current roll point - if (m_rollDate && !m_staticLogFileName) - { - string date = m_dateTime.Now.ToString(m_datePattern, System.Globalization.DateTimeFormatInfo.InvariantInfo); - string prefix = m_preserveLogFileNameExtension ? Path.GetFileNameWithoutExtension(baseFile) + date : baseFile + date; - string suffix = m_preserveLogFileNameExtension ? Path.GetExtension(baseFile) : ""; - if (!curFileName.StartsWith(prefix) || !curFileName.EndsWith(suffix)) - { - LogLog.Debug(declaringType, "Ignoring file ["+curFileName+"] because it is from a different date period"); - return; - } - } - try { // Bump the counter up to the highest count seen so far {code} Please don't think I'm nitpicky, I just wanna make sure we do not break existing functionality. Cheers > Rolling log files get overwritten when IIS is restarted > ------------------------------------------------------- > > Key: LOG4NET-465 > URL: https://issues.apache.org/jira/browse/LOG4NET-465 > Project: Log4net > Issue Type: Bug > Components: Appenders > Affects Versions: 1.2.13 > Environment: asp.net 4.0 > Reporter: Michel Emond > Attachments: RollingFileAppender.diff, config.xml > > > This is the issue described in LOG4NET-378 > h2. Reproduction steps > # Setup a web application using the settings from the attached config.xml file > # Notice the rolling style set to Composite > # Start and use the application > # The log files pile up in the folder > # Restart IIS > # Keep using the application > Expected result > - The rolling continues on or after the last file > Actual result > - The rolling restarts at index 1 and overwrites the existing files > h2. Solution > See the attached files: > - config.xml > - patch with a fix proposal > The original bug fix addresses the issue in the InitializeFromOneFile() > method. > However, the GetWildcardPatternForFile() method also needs the baseFileName > to be adjusted with the datePattern so the proper files are searched. > I placed a file path fix in the DetermineCurSizeRollBackups() method, so it's > then passed down to the two other methods and everyone gets happy. > Here's a calling stack sample: > {code} > DetermineCurSizeRollBackups() > | > +--GetExistingFiles() > | +--GetWildcardPatternForFile() > | > +--InitializeRollBackups() > +--InitializeFromOneFile() > {code} -- This message was sent by Atlassian JIRA (v6.3.4#6332)