You are viewing a plain text version of this content. The canonical link for it is here.
Posted to log4net-user@logging.apache.org by "Atif.Sarfraz" <At...@kerzner.com> on 2007/04/06 18:54:46 UTC

RE: Logging large messages using ADO.NET appender (setting size close to 500,000 or more)

The message doesn't get logged at all, if I remove the complete entry 
<size value="99000" />  or set it to  <size value="" />

My problem is that the XML document is dynamic and can be anywhere from a few thousand characters to maybe close to 500,000 or more. Setting the column size as NText does take care of this issue from the database end. However I am not sure what size to set in log4Net (safely I can set the size to a very high value like 500,000 or something but I am not sure if that will have side effects to my application in production environment). Please note that if I set the size to a high value like 500,000 the message does gets logged completely and without an error.

Regards,
Atif Sarfraz
Senior Application Developer 
Information Technology
Kerzner International North America, Inc.
1000 South Pine Island Road, Suite 800, 
Plantation, FL 33324-3907 
Telephone 954-809-2131 
Email: Atif.sarfraz@kerzner.com

-----Original Message-----
From: Ron Grabowski [mailto:rongrabowski@yahoo.com] 
Sent: Thursday, April 05, 2007 10:17 PM
To: Log4NET User
Subject: Re: Logging large messages using ADO.NET appender

Do you get an error when you don't specify the size? 9,900 is quite large for a message. Are you approaching the limit?

----- Original Message ----

From: Atif.Sarfraz <At...@kerzner.com>

To: log4net-user@logging.apache.org

Sent: Thursday, April 5, 2007 3:48:55 PM

Subject: Logging large messages using ADO.NET appender



Logging large messages using ADO.NET appender     



 



  Hi,

 I am trying to log a large XML message whenever there is an exception in our application. I have defined my table as follows, i.e. setting the Message column as ntext.

 CREATE TABLE [dbo].[ Log](

         [Id] [int] IDENTITY(1,1) NOT NULL,

         [Date] [datetime] NOT NULL,

         [Machine] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

         [Thread] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

         [Level] [varchar](50) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

         [Logger] [varchar](255) COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

         [Message] [ntext] COLLATE SQL_Latin1_General_CP1_CI_AS NOT NULL,

         [Exception] [varchar](2000) COLLATE SQL_Latin1_General_CP1_CI_AS NULL,

  CONSTRAINT [PK_APP_Log] PRIMARY KEY CLUSTERED 

 (

         [Id] ASC

 )WITH FILLFACTOR = 90 ON [PRIMARY]

 ) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]

 

 

 Since I am not sure about the actual size of the message I have defined the parameter as equal to 99000 characters. Is this the right way of doing this, or is there any other way by which I can tell Log4Net to log all the message without specifying the size here. 

 (Note: My messages do get logged properly using this approach but I don’t want to give a fixed size here).

 

 <parameter>

 <parameterName value="@message" />

         <dbType value="String" />

         <size value="99000" />

         <layout type="log4net.Layout.PatternLayout">

                 <conversionPattern value="%message" />

         </layout>

 </parameter>

 

 Regards,

 Atif Sarfraz