[
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