public void TestOutputContainsSentDate() { SilentErrorHandler sh = new SilentErrorHandler(); AppenderSmtpPickup appender = CreateSmtpPickupDirAppender(sh); ILogger log = CreateLogger(appender); log.Log(GetType(), Level.Info, "This is a message", null); log.Log(GetType(), Level.Info, "This is a message 2", null); DestroyLogger(); Assert.AreEqual(1, Directory.GetFiles(_testPickupDir).Length); string[] fileContent = File.ReadAllLines((Directory.GetFiles(_testPickupDir)[0])); bool hasDateHeader = false; const string dateHeaderStart = "Date: "; foreach (string line in fileContent) { if (line.StartsWith(dateHeaderStart)) { string datePart = line.Substring(dateHeaderStart.Length); DateTime date = DateTime.ParseExact(datePart, "r", System.Globalization.CultureInfo.InvariantCulture); double diff = Math.Abs((DateTime.UtcNow - date).TotalMilliseconds); Assert.LessOrEqual(diff, 1000, "Times should be equal, allowing a diff of one second to make test robust"); hasDateHeader = true; } } Assert.IsTrue(hasDateHeader, "Output must contains a date header"); Assert.AreEqual("", sh.Message, "Unexpected error message"); }
/// <summary> /// Create an appender to use for the logger /// </summary> /// <param name="handler">The error handler to use.</param> /// <returns></returns> private AppenderSmtpPickup CreateSmtpPickupDirAppender(IErrorHandler handler) { AppenderSmtpPickup appender = new AppenderSmtpPickup(); appender.PickupDir = _testPickupDir; appender.ErrorHandler = handler; return(appender); }
public void TestDefaultFileNameIsAGuid() { SilentErrorHandler sh = new SilentErrorHandler(); AppenderSmtpPickup appender = CreateSmtpPickupDirAppender(sh); ILogger log = CreateLogger(appender); log.Log(GetType(), Level.Info, "This is a message", null); log.Log(GetType(), Level.Info, "This is a message 2", null); DestroyLogger(); Assert.AreEqual(1, Directory.GetFiles(_testPickupDir).Length); FileInfo fileInfo = new FileInfo(Directory.GetFiles(_testPickupDir)[0]); Assert.IsEmpty(fileInfo.Extension); Assert.DoesNotThrow(delegate { new Guid(fileInfo.Name); }); // Assert that filename is a guid Assert.AreEqual("", sh.Message, "Unexpected error message"); }
/// <summary> /// Creates a logger hierarchy, configures a SMTP pickup dir appender and returns an ILogger /// </summary> /// <param name="appender">The appender to use</param> /// <returns>A configured ILogger</returns> private ILogger CreateLogger(AppenderSmtpPickup appender) { ILoggerController h = LogManager.CreateController("TestRepository"); LayoutPattern layout = new LayoutPattern(); layout.Pattern = "%m%n"; layout.Activate(); appender.Layout = layout; appender.Activate(); h.Root.AddAppender(appender); h.Initialize(); ILogger log = h.Get("Logger"); return(log); }
public void TestConfigurableFileExtension() { const string fileExtension = "eml"; SilentErrorHandler sh = new SilentErrorHandler(); AppenderSmtpPickup appender = CreateSmtpPickupDirAppender(sh); appender.FileExtension = fileExtension; ILogger log = CreateLogger(appender); log.Log(GetType(), Level.Info, "This is a message", null); log.Log(GetType(), Level.Info, "This is a message 2", null); DestroyLogger(); Assert.AreEqual(1, Directory.GetFiles(_testPickupDir).Length); FileInfo fileInfo = new FileInfo(Directory.GetFiles(_testPickupDir)[0]); Assert.AreEqual("." + fileExtension, fileInfo.Extension); Assert.DoesNotThrow(delegate { new Guid(fileInfo.Name.Substring(0, fileInfo.Name.Length - fileInfo.Extension.Length)); }); // Assert that filename before extension is a guid Assert.AreEqual("", sh.Message, "Unexpected error message"); }