/// <summary> /// Works like the CopyStream method but does a log rotation based on time. /// </summary> private void CopyStreamWithDateRotation(StreamReader reader, string ext) { var periodicRollingCalendar = new PeriodicRollingCalendar(this.Pattern, this.Period); periodicRollingCalendar.Init(); var writer = new FileStream(this.BaseLogFileName + "_" + periodicRollingCalendar.Format + ext, FileMode.Append); var copy = new StreamCopyOperation(reader.BaseStream, writer); while (copy.CopyLine() != 0) { if (periodicRollingCalendar.ShouldRoll) { writer.Dispose(); copy.Writer = writer = new FileStream(this.BaseLogFileName + "_" + periodicRollingCalendar.Format + ext, FileMode.Create); } } reader.Dispose(); writer.Dispose(); }
/// <summary> /// Works like the CopyStream method but does a log rotation based on time. /// </summary> private void CopyStreamWithDateRotation(StreamReader reader, string ext) { PeriodicRollingCalendar periodicRollingCalendar = new PeriodicRollingCalendar(this.Pattern, this.Period); periodicRollingCalendar.Init(); StreamWriter writer = this.CreateWriter(new FileStream(this.BaseLogFileName + "_" + periodicRollingCalendar.Format + ext, FileMode.Append)); string? line; while ((line = reader.ReadLine()) != null) { if (periodicRollingCalendar.ShouldRoll) { writer.Dispose(); writer = this.CreateWriter(new FileStream(this.BaseLogFileName + "_" + periodicRollingCalendar.Format + ext, FileMode.Create)); } writer.WriteLine(line); } reader.Dispose(); writer.Dispose(); }