public Format ( |
||
writer | writer to output the formatted data to | |
logEvent | log4net.Core.LoggingEvent | logging event data to use |
return | void |
public void TestFormat() { SyslogLayout layout = new SyslogLayout(); layout.StructuredDataPrefix = "TEST@12345"; layout.ActivateOptions(); var exception = new Exception("test exception message"); ILoggerRepository logRepository = Substitute.For<ILoggerRepository>(); var evt = new LoggingEvent(typeof(SyslogLayoutTests), logRepository, "test logger", Level.Debug, "test message", exception); StringWriter writer = new StringWriter(); layout.Format(writer, evt); string result = writer.ToString(); // it's hard to test the whole message, because it depends on your machine name, process id, time & date, etc. // just test the message's invariant portions Assert.IsTrue(result.StartsWith("<135>1 ")); Assert.IsTrue(result.Contains("[TEST@12345 EventSeverity=\"DEBUG\" ExceptionType=\"System.Exception\" ExceptionMessage=\"test exception message\"]")); Assert.IsTrue(result.EndsWith("test message" + Environment.NewLine)); }
public void TestThatWeTruncateLongMessages() { SyslogLayout layout = new SyslogLayout(); layout.StructuredDataPrefix = "TEST@12345"; layout.ActivateOptions(); StringBuilder longMessage = new StringBuilder(); for (int i = 0; i < 2048; i++) { longMessage.Append("test message"); } var exception = new ArgumentNullException(); ILoggerRepository logRepository = Substitute.For<ILoggerRepository>(); var evt = new LoggingEvent(typeof(SyslogLayoutTests), logRepository, "test logger", Level.Debug, longMessage.ToString(), exception); StringWriter writer = new StringWriter(); layout.Format(writer, evt); string result = writer.ToString(); Assert.AreEqual(2048, result.Length); }