[ 
https://issues.apache.org/jira/browse/LOG4NET-672?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=17504965#comment-17504965
 ] 

Davyd McColl commented on LOG4NET-672:
--------------------------------------

I have a fix in master which will make it out in the next release. There's 
another issue I'd like to look at, concerning performance and filtering by 
logging username, so I'd like to get that out at the same time.

> Previous rolled files not taken into consideration after restart the Logging 
> Manager with a specific date-pattern 
> ------------------------------------------------------------------------------------------------------------------
>
>                 Key: LOG4NET-672
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-672
>             Project: Log4net
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 2.0.10
>            Reporter: Akhil Bandari
>            Priority: Critical
>
> {code:xml}
> <log4net>             
> <appender name="LogFileAppenderXML" 
> type="log4net.Appender.RollingFileAppender">                      <file 
> value="Logs\.xml" />                      
> <datePattern value="yyyy-MM-dd-'Xyz'" />                      
> <appendToFile value="true" />                 
> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" />             
>         <rollingStyle value="Composite" />                      
> <maxSizeRollBackups value="40" />                     
> <maximumFileSize value="1MB" />                       
> <preserveLogFileNameExtension value="true" />                 
> <staticLogFileName value="true" />                    
> <layout type="log4net.Layout.XmlLayout"/>             
> </appender>           
> <root>                        
> <level value="ALL"/>                  
> <appender-ref ref="LogFileAppenderXML"></appender-ref>                
> </root>       
> </log4net>                             
> {code}
>  
> With the above configuration, the rolling was working fine for a single run 
> of the application, but after a restart of the logging manager (or the 
> application), the previous rolled files are overwritten instead of new rolled 
> files being created with the last highest rolled file index. 
> +*Steps to reproduce:*+
>  # Create an application [console or wpf]  with the above log4net config
>  # Start logging
>  ## Until At least 10 rolled files are created
>  # Close and ReStart the application
>  # Start logging again
>  ##  Observe the rolled files
>  ##  Start logging and when the logging information reaches to 
> maximumFileSize, {color:#172b4d}the previous rolled file content will be 
> overwritten with new content, _*instead of increasing the rolled file 
> count.*_{color}
> {color:#172b4d}Looked into the source code of *RollingFileAppender* found 
> that {color}
>  * {color:#172b4d}At the initial phase all the rolled file names, are 
> converted into the *LowerInvariant and* passing to the 
> *InitializeFromOneFile* method{color}
>  
> {code:c#}
> private void InitializeRollBackups(string baseFile, ArrayList arrayFiles)
> {
>       if (null != arrayFiles)
>       {
>            string baseFileLower = baseFile.ToLowerInvariant();
>            foreach(string curFileName in arrayFiles)
>            {
>                 
> InitializeFromOneFile(baseFileLower,curFileName.ToLowerInvariant());
>            }
>         }
> }
> {code}
>  - Inside *InitializeFromOneFile*
>       - The date variable is not converting to lower or while comparing the 
> *curFileName with a prefix not using ignoreCase*
>       - that is leading not to get last rolled file index
> {code:c#}
> if (!curFileName.StartsWith(prefix) || !curFileName.EndsWith(suffix))
> { 
>        LogLog.Debug(declaringType, "Ignoring file ["+curFileName+"] 
>        because it is from a different date period");
>       return; 
> }            
> {code}
> Is there any possibility to use ignoreCase while comparing curFileName with 
> the prefix
> {code:c#}
>  if (!curFileName.StartsWith(prefix,true,CultureInfo.InvariantCulture) || 
> !curFileName.EndsWith(suffix))
> {code}
>  
>  Or is there any reason not to _*use ignoreCase while comparing curFileName*_ 
> with the _*prefix?*_
>  
>  



--
This message was sent by Atlassian Jira
(v8.20.1#820001)

Reply via email to