मैं भी प्रवेश फ़ाइल साप्ताहिक रोल करने GLM के समाधान की विधि के परीक्षण से ही समस्या का सामना, किसी भी तरह यह log4net के संस्करण (1.2.15.0) पर काम नहीं कर रहा है, लेकिन उनके जवाब से प्रेरित,
namespace log4net.Appender
{
class RollingOverWeekFileAppender : RollingFileAppender
{
public RollingOverWeekFileAppender()
{
IDateTime dt = new SundayDateTime();
DateTimeStrategy = dt;
}
class SundayDateTime : IDateTime
{
public DateTime Now
{
get { return CalcThisSunday(DateTime.Now); }
}
private DateTime CalcThisSunday(DateTime time)
{
// Calc this sunday
time = time.AddMilliseconds((double)-time.Millisecond);
time = time.AddSeconds((double)-time.Second);
time = time.AddMinutes((double)-time.Minute);
time = time.AddHours((double)-time.Hour);
return time.AddDays((double)(-(int)time.DayOfWeek));
}
}
}
}
और log.config की मेरी टुकड़ा (रविवार की तारीख के रूप में नामित) और स्रोत कोड का अध्ययन, मैं एक समाधान प्रति सप्ताह नाम से लॉग फ़ाइल उत्पन्न करने के लिए बना दिया है
<appender name="Log" type="log4net.Appender.RollingOverWeekFileAppender">
<file type="log4net.Util.PatternString">
<conversionPattern value=".\log-" />
</file>
<lockingModel type="log4net.Appender.FileAppender+MinimalLock"/>
<encoding value="utf-8" />
<staticLogFileName value="false"/>
<appendToFile value="true" />
<rollingStyle value="Date"/>
<datePattern value="yyyyMMdd.lo\g"/>
<layout type="log4net.Layout.PatternLayout">
<conversionPattern value="%date	%level	%logger{1}	%message%newline" />
</layout>
</appender>