logging-log4net-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Horst Beham (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (LOG4NET-378) Rolling log file is overwritten when application is restarted
Date Mon, 27 May 2013 12:24:20 GMT

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

Horst Beham commented on LOG4NET-378:
-------------------------------------

After debugging the code I pinned down the problem to two facts:
1) I'm not initializing MaxSizeRollBackups in my config file and the default value of 0 causes
files to be overwritten. Why it leaves file *.0.log in place and overwrite only *.1.log and
higher is something I haven't investigated further.
2) An incompatibility between "PreserveLogFileNameExtension" and RollingMode.Composite. In
this case the RollingFileAppender.InitializeFromOneFile() method fails to recognize files
which have both a date and a segment number inserted between the file's base name and the
extension.

To fix the problem I modified RollingFileAppender line 904 to look like this:

// 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;
	}
}
                
> Rolling log file is overwritten when application is restarted
> -------------------------------------------------------------
>
>                 Key: LOG4NET-378
>                 URL: https://issues.apache.org/jira/browse/LOG4NET-378
>             Project: Log4net
>          Issue Type: Bug
>          Components: Appenders
>    Affects Versions: 1.2.11
>            Reporter: Horst Beham
>            Priority: Minor
>
> My server process uses log files which roll on date and file size (4MB). 
> When I restart the server and there are already more than 1 log files for the current
date, the 2nd segment gets overwritten and the 3rd, 4th, ... may get overwritten later, when
#2 is filled up again.
> I'm using version 1.2.11, which I can't select in the "Affects Version" combo box.
> e.g. 
> flotto.20130527.0.log = 4MB
> flotto.20130527.1.log = 0MB (just got overwritten when the server was restarted)
> flotto.20130527.2.log = 4MB (still contains original data but will be overwritten too
as soon as #1 fills up)
> flotto.20130527.3.log = 4MB (same as above)
> The configuration in MyServer.exe.config looks like this:
> <log4net>
>     <appender name="LogFileAppender" type="log4net.Appender.RollingFileAppender">
>       <file value="flotto.log" />
>       <appendToFile value="true" />
>       <encoding>utf-8</encoding>
>       <preserveLogFileNameExtension value="true"/>
>       <rollingStyle value="Composite" />
>       <staticLogFileName value="false" />
>       <datePattern value=".yyyyMMdd"/>
>       <countDirection value="1"/>
>       <maximumFileSize value="4MB" />
>       <layout type="log4net.Layout.PatternLayout">
>         <conversionPattern value="%date [%-7thread] %-5level %-35logger - %message%newline"
/>
>       </layout>
>     </appender>
>     <root>
>       <level value="INFO" />
>       <appender-ref ref="LogFileAppender"/>
>     </root>
>     <logger name="Flotto.FlottoService">
>       <!--<level value="DEBUG"/>-->
>     </logger>
>     <logger name="Flotto.TcpServer">
>       <!--<level value="DEBUG"/>-->
>     </logger>
>     <logger name="Flotto.UdpBroadcastReceiver">
>       <!--<level value="DEBUG"/>-->
>     </logger>
>     <logger name="Flotto.GpsTrackerGprsServer">
>       <level value="DEBUG"/>
>     </logger>
>     <logger name="Flotto.SmsAtHttpReceiver">
>       <level value="DEBUG"/>
>     </logger>
>     <logger name="Flotto.SmsAtHttpSender">
>       <level value="DEBUG"/>
>     </logger>
>     <logger name="Flotto.BulksmsComHttpReceiver">
>       <level value="DEBUG"/>
>     </logger>
>     <logger name="Flotto.BulksmsComHttpSender">
>       <level value="DEBUG"/>
>     </logger>
>     <logger name="Flotto.TrackerManager">
>       <!--<level value="INFO"/>-->
>     </logger>
>   </log4net>

--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira

Mime
View raw message