public void ActivateOptions() { _xmlLayout = new XmlLayout { Prefix = null }; _xmlLayout.ActivateOptions(); _encoding = Encoding.UTF8; }
[Test] public void TestBasicEventLogging() { TextWriter writer=new StringWriter(); XmlLayout layout=new XmlLayout(); LoggingEventData evt=createBaseEvent(); layout.Format(writer,new LoggingEvent(evt)); string expected = createEventNode("Test message"); Assert.AreEqual (expected, writer.ToString()); }
public LogUDPAppender() : base() { try { log4net.Layout.XmlLayout xmllayout = new log4net.Layout.XmlLayout(); xmllayout.Prefix = "log4net"; xmllayout.ActivateOptions(); this.Name = "UDPappender"; this.Layout = xmllayout; this.RemoteAddress = IPAddress.Parse("127.0.0.1"); this.RemotePort = 9999; this.ActivateOptions(); } catch (Exception e) { Console.WriteLine("LogUDPAppender error " + e); } }
/// <summary> /// <param name="RemoteAddress" value="127.0.0.1" /> //<param name = "RemotePort" value="8080" /> //<layout type = "log4net.Layout.XmlLayout" > // < param name="Prefix" value="" /> //</layout> /// </summary> public static void AppendToConfiguration() { //First create and configure the appender var appender = new UdpAppender(); appender.Name = "UdpAppender"; var layout = new XmlLayout(); layout.Prefix = ""; appender.Layout = layout; appender.RemotePort = 8080; appender.RemoteAddress = "127.0.0.1"; //Notify the appender on the configuration changes appender.ActivateOptions(); //Get the logger repository hierarchy. var repository = LogManager.GetRepository() as Hierarchy; if (repository == null) return; //and add the appender to the root level //of the logging hierarchy repository.Root.AddAppender(appender); //mark repository as configured and //notify that is has changed. repository.Configured = true; repository.RaiseConfigurationChanged(EventArgs.Empty); }
public void BracketsInStackTracesAreEscapedProperly() { XmlLayout layout = new XmlLayout(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger"); Action<int> bar = foo => { try { throw new NullReferenceException(); } catch (Exception ex) { log1.Error(string.Format("Error {0}", foo), ex); } }; bar(42); var log = stringAppender.GetString(); var startOfExceptionText = log.IndexOf("<exception>", StringComparison.InvariantCulture) + 11; var endOfExceptionText = log.IndexOf("</exception>", StringComparison.InvariantCulture); var sub = log.Substring(startOfExceptionText, endOfExceptionText - startOfExceptionText); if (sub.StartsWith("<![CDATA[")) { StringAssert.EndsWith("]]>", sub); } else { StringAssert.DoesNotContain("<", sub); StringAssert.DoesNotContain(">", sub); } }
public void BracketsInStackTracesKeepLogWellFormed() { XmlLayout layout = new XmlLayout(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger"); Action<int> bar = foo => { try { throw new NullReferenceException(); } catch (Exception ex) { log1.Error(string.Format("Error {0}", foo), ex); } }; bar(42); // really only asserts there is no exception var loggedDoc = new XmlDocument(); loggedDoc.LoadXml(stringAppender.GetString()); }
public void TestPropertyIllegalCharacterMaskingInName() { LoggingEventData evt = CreateBaseEvent(); evt.Properties["Property\uFFFF"] = "mask this ->\uFFFF"; XmlLayout layout = new XmlLayout(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); ILog log1 = LogManager.GetLogger(rep.Name, "TestThreadProperiesPattern"); log1.Logger.Log(new LoggingEvent(evt)); string expected = CreateEventNode("Property?", "mask this ->?"); Assert.AreEqual(expected, stringAppender.GetString()); }
public void TestPropertyCharacterEscaping() { LoggingEventData evt = CreateBaseEvent(); evt.Properties["Property1"] = "prop1 \"quoted\""; XmlLayout layout = new XmlLayout(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); ILog log1 = LogManager.GetLogger(rep.Name, "TestThreadProperiesPattern"); log1.Logger.Log(new LoggingEvent(evt)); string expected = CreateEventNode("Property1", "prop1 "quoted""); Assert.AreEqual(expected, stringAppender.GetString()); }
public void TestBase64PropertyEventLogging() { LoggingEventData evt = CreateBaseEvent(); evt.Properties["Property1"] = "prop1"; XmlLayout layout = new XmlLayout(); layout.Base64EncodeProperties = true; StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); ILog log1 = LogManager.GetLogger(rep.Name, "TestThreadProperiesPattern"); log1.Logger.Log(new LoggingEvent(evt)); string expected = CreateEventNode("Property1", "cHJvcDE="); Assert.AreEqual(expected, stringAppender.GetString()); }
public void TestBase64EventLogging() { TextWriter writer = new StringWriter(); XmlLayout layout = new XmlLayout(); LoggingEventData evt = CreateBaseEvent(); layout.Base64EncodeMessage = true; layout.Format(writer, new LoggingEvent(evt)); string expected = CreateEventNode("VGVzdCBtZXNzYWdl"); Assert.AreEqual(expected, writer.ToString()); }
public void TestCDATAEscaping3() { TextWriter writer = new StringWriter(); XmlLayout layout = new XmlLayout(); LoggingEventData evt = CreateBaseEvent(); //The &'s trigger the use of a cdata block evt.Message = "]]>&&&&&&&Escape the begining"; layout.Format(writer, new LoggingEvent(evt)); string expected = CreateEventNode("<![CDATA[]]>]]<![CDATA[>&&&&&&&Escape the begining]]>"); Assert.AreEqual(expected, writer.ToString()); }
public void TestIllegalCharacterMasking() { TextWriter writer = new StringWriter(); XmlLayout layout = new XmlLayout(); LoggingEventData evt = CreateBaseEvent(); evt.Message = "This is a masked char->\uFFFF"; layout.Format(writer, new LoggingEvent(evt)); string expected = CreateEventNode("This is a masked char->?"); Assert.AreEqual(expected, writer.ToString()); }
public void BracketsInStackTracesAreEscapedProperly() { XmlLayout layout = new XmlLayout(); StringAppender stringAppender = new StringAppender(); stringAppender.Layout = layout; ILoggerRepository rep = LogManager.CreateRepository(Guid.NewGuid().ToString()); BasicConfigurator.Configure(rep, stringAppender); ILog log1 = LogManager.GetLogger(rep.Name, "TestLogger"); Action<int> bar = foo => { try { throw new NullReferenceException(); } catch (Exception ex) { log1.Error(string.Format("Error {0}", foo), ex); } }; bar(42); var log = stringAppender.GetString(); var startOfExceptionElement = log.IndexOf("<exception>"); var sub = log.Substring(startOfExceptionElement + 11); StringAssert.StartsWith("System.NullReferenceException: Object reference not set to an instance of an object", sub); StringAssert.Contains("at log4net.Tests.Layout.XmlLayoutTest.<>c__DisplayClass4.<BracketsInStackTracesAreEscapedProperly>b__3(Int32 foo)", sub); }