Exemplo n.º 1
0
        public void ActivateOptions()
        {
            _xmlLayout = new XmlLayout { Prefix = null };
            _xmlLayout.ActivateOptions();

            _encoding = Encoding.UTF8;
        }
Exemplo n.º 2
0
		[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());
		}
Exemplo n.º 3
0
 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);
        }
Exemplo n.º 5
0
        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);
            }
        }
Exemplo n.º 6
0
        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());
        }
Exemplo n.º 7
0
		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 -&gt;?");

			Assert.AreEqual(expected, stringAppender.GetString());
		}
Exemplo n.º 8
0
		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 &quot;quoted&quot;");

			Assert.AreEqual(expected, stringAppender.GetString());
		}
Exemplo n.º 9
0
		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());
		}
Exemplo n.º 10
0
		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());
		}
Exemplo n.º 11
0
		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());
		}
Exemplo n.º 12
0
		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-&gt;?");

			Assert.AreEqual(expected, writer.ToString());
		}
Exemplo n.º 13
0
        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.&lt;&gt;c__DisplayClass4.&lt;BracketsInStackTracesAreEscapedProperly&gt;b__3(Int32 foo)", sub);
        }