Title: Message
No, same issue Leo.  Thanks for the catch though, I'm sure it saved me from some troubleshooting down the road. ;-)
 
Jon


From: Hart, Leo [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 15, 2005 3:16 PM
To: Log4NET User
Subject: RE: LayoutSkeleton Help

It looks like you are missing a "<" in this line:
writer.Write("<ClassName>" + loggingEvent.LocationInformation.ClassName + "/ClassName>");
Does that fix the problem?
 
-----Original Message-----
From: Jon Finley [mailto:[EMAIL PROTECTED]
Sent: Thursday, September 15, 2005 4:13 PM
To: 'Log4NET User'
Subject: LayoutSkeleton Help

Hi,

I have a very simple Layout based on LayoutSkeleton that generates XML using the LoggingEvent values.  However; the exception text always prints at the end of the XML.  Is there a way to turn this off?

My Format routine is as follows:

                public override void Format(TextWriter writer, LoggingEvent loggingEvent)
                {
                        writer.Write("<GSIEventLog>");
                writer.Write("<Domain>" + loggingEvent.Domain + "</Domain>");
                    writer.Write("<ClassName>" + loggingEvent.LocationInformation.ClassName + "/ClassName>");
                writer.Write("<RenderedMessage>" + loggingEvent.RenderedMessage + "</message>");
                        writer.Write("<HostName>" + loggingEvent.LookupProperty("log4net:HostName").ToString()  + "</HostName>");
                        writer.Write("<Identity>" + loggingEvent.UserName + "</Identity>");
                        writer.Write("<LoggerName>" + loggingEvent.LoggerName + "</LoggerName>");
                        writer.Write("<ThreadName>" + loggingEvent.ThreadName + "</ThreadName>");
                        writer.Write("<TimeStamp>" + loggingEvent.TimeStamp + "</TimeStamp>");
                        writer.Write("<EventId>" + loggingEvent.LookupProperty("EventId").ToString() + "</EventId>");
                        writer.Write("<Message2>" + loggingEvent.LookupProperty("Message").ToString() + "</Message2>");
                        writer.Write("<AppUser>" + loggingEvent.LookupProperty("AppUser").ToString() + "</AppUser>");
                        writer.Write("<SourceId>" + loggingEvent.LookupProperty("SourceId").ToString() + "</SourceId>");
                writer.Write("<ExMessage>" + loggingEvent.ExceptionObject.Message + "</ExMessage>");
                    writer.Write("<ExStackTrace>" + loggingEvent.ExceptionObject.StackTrace + "</ExStackTrace>");
                        writer.Write("</GSIEventLog>");

                        writer.WriteLine();
                }


The output is:
<GSIEventLog><Domain>Test1.exe</Domain><ClassName>Test1.Form1/ClassName><RenderedMessage>message</message><HostName>jon-lt</HostName><Identity>GSI\jfinley</Identity><LoggerName>Test1.Form1</LoggerName><ThreadName>2516</ThreadName><TimeStamp>9/15/2005 3:00:04 PM</TimeStamp><EventId>1111</EventId><Message2>message</Message2><AppUser>jfinley-AppUser</AppUser><SourceId></SourceId><ExMessage>Object reference not set to an instance of an object.</ExMessage><ExStackTrace>   at Test1.Form1.btnLog4NetTest_Click(Object sender, EventArgs e) in C:\Development_NET\Test\Test1\Form1.vb:line 236</ExStackTrace></GSIEventLog>
System.NullReferenceException: Object reference not set to an instance of an object.
   at Test1.Form1.btnLog4NetTest_Click(Object sender, EventArgs e) in C:\Development_NET\Test\Test1\Form1.vb:line 236


I would like the output to be:
<GSIEventLog><Domain>Test1.exe</Domain><ClassName>Test1.Form1/ClassName><RenderedMessage>message</message><HostName>jon-lt</HostName><Identity>GSI\jfinley</Identity><LoggerName>Test1.Form1</LoggerName><ThreadName>2516</ThreadName><TimeStamp>9/15/2005 3:00:04 PM</TimeStamp><EventId>1111</EventId><Message2>message</Message2><AppUser>jfinley-AppUser</AppUser><SourceId></SourceId><ExMessage>Object reference not set to an instance of an object.</ExMessage><ExStackTrace>   at Test1.Form1.btnLog4NetTest_Click(Object sender, EventArgs e) in C:\Development_NET\Test\Test1\Form1.vb:line 236</ExStackTrace></GSIEventLog>

Thank you,

Jon

Reply via email to