[
https://issues.apache.org/jira/browse/LOG4NET-378?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13667725#comment-13667725
]
Horst Beham commented on LOG4NET-378:
-------------------------------------
A unit test for it (which doesn't quite follow the pattern of the other tests)
would be:
#region CompositeLoggerWithPreserveLogFileExtensionTest
[Test]
public void CompositeLoggerWithPreserveLogFileExtensionTest()
{
string baseName = Path.GetFileNameWithoutExtension(c_fileName);
string ext = Path.GetExtension(c_fileName);
// delete old test files
foreach (var file in Directory.GetFiles(Environment.CurrentDirectory,
baseName + "*"))
File.Delete(file);
var raf = CreateCompositeRollingFileAppender();
const string oldMessage = "1234567890";
LoggingEventData led = new LoggingEventData();
led.Message = oldMessage;
raf.DoAppend(new LoggingEvent(led));
raf.DoAppend(new LoggingEvent(led));
raf.DoAppend(new LoggingEvent(led));
Assert.IsTrue(File.Exists(baseName + ".20130527.0" + ext));
Assert.AreEqual(oldMessage + Environment.NewLine,
File.ReadAllText(baseName + ".20130527.0" + ext));
Assert.IsTrue(File.Exists(baseName + ".20130527.1" + ext));
Assert.IsTrue(File.Exists(baseName + ".20130527.2" + ext));
Assert.IsFalse(File.Exists(baseName + ".20130527.3" + ext));
// simulate application restart
raf.Close();
raf = CreateCompositeRollingFileAppender();
const string newMessage = "ABCDEFGHIJ";
led.Message = newMessage;
raf.DoAppend(new LoggingEvent(led));
Assert.AreEqual(oldMessage + Environment.NewLine,
File.ReadAllText(baseName + ".20130527.0" + ext));
Assert.AreEqual(oldMessage + Environment.NewLine,
File.ReadAllText(baseName + ".20130527.1" + ext));
Assert.AreEqual(oldMessage + Environment.NewLine,
File.ReadAllText(baseName + ".20130527.2" + ext));
Assert.IsTrue(File.Exists(baseName + ".20130527.3" + ext));
raf.Close();
Assert.AreEqual(newMessage + Environment.NewLine,
File.ReadAllText(baseName + ".20130527.3" + ext));
}
private static RollingFileAppender
CreateCompositeRollingFileAppender()
{
RollingFileAppender raf = new RollingFileAppender();
raf.File = c_fileName;
raf.AppendToFile = true;
raf.Encoding = Encoding.UTF8;
raf.PreserveLogFileNameExtension = true;
raf.RollingStyle = RollingFileAppender.RollingMode.Composite;
raf.StaticLogFileName = false;
raf.DatePattern = ".yyyyMMdd";
raf.CountDirection = +1;
raf.MaximumFileSize = "10";
raf.MaxSizeRollBackups = -1;
var layout = new PatternLayout();
raf.Layout = layout;
layout.ConversionPattern = "%message%newline";
raf.ActivateOptions();
raf.DateTimeStrategy = new TestDateTimeStragety();
return raf;
}
class TestDateTimeStragety : RollingFileAppender.IDateTime
{
public DateTime Now { get { return new DateTime(2013, 5, 27, 13, 06, 00);
} }
}
#endregion
> 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