public void RolledFileWithOverwriteWillFallBackToUniqueNameIfDateTemplateMatchesButArchiveFileIsInUse()
        {
            string targetArchiveFile = fileNameWithoutExtension + ".2007" + extension;

            using (FileStream stream = File.Open(targetArchiveFile, FileMode.CreateNew, FileAccess.Write, FileShare.Read))
            {
                using (RollingFlatFileTraceListener traceListener
                           = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                              0, "yyyy", RollFileExistsBehavior.Overwrite, RollInterval.Day))
                {
                    traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;
                    traceListener.Write("1234567890");

                    Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                    traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                    traceListener.Write("12345");
                }
            }

            Assert.IsTrue(File.Exists(fileName));
            Assert.AreEqual("12345", File.ReadAllText(fileName));
            Assert.IsTrue(File.Exists(targetArchiveFile));
            Assert.AreEqual("", File.ReadAllText(targetArchiveFile)); // couldn't archive

            string[] archiveFiles = Directory.GetFiles(".", targetArchiveFile + "*");
            Assert.AreEqual(2, archiveFiles.Length);
            foreach (string archiveFile in archiveFiles)
            {
                if (!Path.GetFileName(archiveFile).Equals(targetArchiveFile))
                {
                    Assert.AreEqual("1234567890", File.ReadAllText(archiveFile));
                }
            }
        }
        public void RolledFileWithIncrementWillCreateArchiveFileWithMaxSequenceIfDateTemplateDoesMatch()
        {
            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                          0, "yyyy", RollFileExistsBehavior.Increment, RollInterval.Day))
            {
                traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;
                traceListener.Write("1234567890");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                traceListener.Write("12345");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 02));
                traceListener.Write("abcde");
            }

            Assert.IsTrue(File.Exists(fileName));
            Assert.AreEqual("abcde", File.ReadAllText(fileName));
            Assert.IsTrue(File.Exists(fileNameWithoutExtension + ".2007.2" + extension));
            Assert.AreEqual("12345", File.ReadAllText(fileNameWithoutExtension + ".2007.2" + extension));
            Assert.IsTrue(File.Exists(fileNameWithoutExtension + ".2007.1" + extension));
            Assert.AreEqual("1234567890", File.ReadAllText(fileNameWithoutExtension + ".2007.1" + extension));

            string[] archiveFiles = Directory.GetFiles(".", fileNameWithoutExtension + ".2007*" + extension + "*");
            Assert.AreEqual(2, archiveFiles.Length);
        }
Ejemplo n.º 3
0
        public void RolledFileWithOverwriteWillOverwriteArchiveFileIfDateTemplateMatches()
        {
            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                          0, "yyyy", RollFileExistsBehavior.Overwrite, RollInterval.Day))
            {
                traceListener.RollingHelper.DateTimeProvider = this.dateTimeProvider;
                traceListener.Write("1234567890");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                traceListener.Write("12345");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                traceListener.Write("abcde");
            }

            Assert.IsTrue(File.Exists(this.fileName));
            Assert.AreEqual("abcde", File.ReadAllText(this.fileName));
            Assert.IsTrue(File.Exists(this.fileNameWithoutExtension + ".2007" + extension));
            Assert.AreEqual("12345", File.ReadAllText(this.fileNameWithoutExtension + ".2007" + extension));

            string[] archiveFiles = Directory.GetFiles(".", this.fileNameWithoutExtension + ".2007" + extension + "*");
            Assert.AreEqual(1, archiveFiles.Length);
        }
        public void FallbackFileNameIsUsedForRoll()
        {
            using (FileStream fileStream = File.Open(fileName, FileMode.CreateNew, FileAccess.Write, FileShare.Read))
            {
                using (RollingFlatFileTraceListener traceListener
                           = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                              10, "yyyy", RollFileExistsBehavior.Overwrite, RollInterval.Day))
                {
                    traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;
                    traceListener.Write("1234567890");

                    Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                    traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                    traceListener.Write("12345");

                    Assert.AreEqual(5L, ((RollingFlatFileTraceListener.TallyKeepingFileStreamWriter)traceListener.Writer).Tally);
                }
            }
        }
        public void RolledFileWithOverwriteAndCapWillCreateArchiveFileIfDateTemplateDoesNotMatchAndKeepTheNewest()
        {
            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(
                             fileName,
                             "header",
                             "footer",
                             null,
                             0,
                             "yyyy",
                             RollFileExistsBehavior.Overwrite,
                             RollInterval.Day,
                             1))
            {
                traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;
                traceListener.Write("1234567890");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                traceListener.Write("12345");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2008, 01, 01));
                traceListener.Write("abcde");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2009, 01, 01));
                traceListener.Write("edcbe");
            }

            Assert.IsTrue(File.Exists(fileName));
            Assert.AreEqual("edcbe", File.ReadAllText(fileName));
            Assert.IsTrue(File.Exists(fileNameWithoutExtension + ".2009" + extension));
            Assert.AreEqual("abcde", File.ReadAllText(fileNameWithoutExtension + ".2009" + extension));
            Assert.IsFalse(File.Exists(fileNameWithoutExtension + ".2008" + extension));
            Assert.IsFalse(File.Exists(fileNameWithoutExtension + ".2007" + extension));
        }
        public void RolledFileWillHaveCurrentDateForTimestamp()
        {
            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                          10, "yyyy", RollFileExistsBehavior.Overwrite, RollInterval.Day))
            {
                traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;
                traceListener.Write("1234567890");

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.RollingHelper.PerformRoll(new DateTime(2007, 01, 01));
                traceListener.Write("12345");

                Assert.AreEqual(5L, ((RollingFlatFileTraceListener.TallyKeepingFileStreamWriter)traceListener.Writer).Tally);
            }

            Assert.IsTrue(File.Exists(fileName));
            Assert.AreEqual("12345", File.ReadAllText(fileName));
            Assert.IsTrue(File.Exists(fileNameWithoutExtension + ".2007" + extension));
            Assert.AreEqual("1234567890", File.ReadAllText(fileNameWithoutExtension + ".2007" + extension));
        }
        public void WriterKeepsTally()
        {
            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "header", "footer", null, 10, "yyyy", RollFileExistsBehavior.Overwrite, RollInterval.Day))
            {
                traceListener.RollingHelper.DateTimeProvider = dateTimeProvider;

                Assert.IsTrue(traceListener.RollingHelper.UpdateRollingInformationIfNecessary());

                traceListener.Write("12345");

                Assert.AreEqual(5L, ((RollingFlatFileTraceListener.TallyKeepingFileStreamWriter)traceListener.Writer).Tally);
            }
        }
        public void RollIsNecessaryWhenUsingJsonFormatterWithRollingFlatFileTraceListener()
        {
            this.fileNameWithoutExtension = Guid.NewGuid().ToString();
            this.fileName = this.fileNameWithoutExtension + JsonLogFormatterFixture.Extension;

            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(this.fileName, "header", "footer", new JsonLogFormatter(JsonFormatting.Indented),
                                                          1, "yyyy", RollFileExistsBehavior.Increment, RollInterval.Year))
            {
                traceListener.RollingHelper.UpdateRollingInformationIfNecessary();

                traceListener.Write(new string('c', 1200));

                Assert.IsNotNull(traceListener.RollingHelper.CheckIsRollNecessary());
            }
        }
        public void WillRollForSize()
        {
            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                          1, "yyyy", RollFileExistsBehavior.Increment, RollInterval.Year))
            {
                traceListener.RollingHelper.UpdateRollingInformationIfNecessary();

                traceListener.Write(new string('c', 1200));

                Assert.IsNotNull(traceListener.RollingHelper.CheckIsRollNecessary());
            }

            using (RollingFlatFileTraceListener traceListener
                       = new RollingFlatFileTraceListener(fileName, "header", "footer", null,
                                                          0, "yyyy", RollFileExistsBehavior.Increment, RollInterval.Year))
            {
                traceListener.RollingHelper.UpdateRollingInformationIfNecessary();

                traceListener.Write(new string('c', 1200));

                Assert.IsNull(traceListener.RollingHelper.CheckIsRollNecessary());
            }
        }
Ejemplo n.º 10
0
 public override void Write(string message)
 {
     Initialise();
     _rollingListener.Write(message);
     _rollingListener.Flush();
 }