The sproc would check for your magic number (values less than or equal to zero) and insert a NULL value.
I don't know the exact sytnax for using a store procedure to log things but I would imagine you need to do something like this: <commandText value="EventLogInsert @date, @spid" /> <commandType value="System.Data.CommandType.StoredProcedure" /> --- Howard Weisberg <[EMAIL PROTECTED]> wrote: > I think I can see from the documentation how to specify that I'm > using > an sproc. But I can't see what the sproc should do. > > Is there an example in the documentation of how to use an sproc with > log4net? > > -----Original Message----- > From: Ron Grabowski [mailto:[EMAIL PROTECTED] > Sent: Monday, April 25, 2005 5:32 PM > To: Log4NET User > Subject: RE: Null values for int (revised) > > Perhaps you can use a stored procedure to write you logs to the > database > instad of a simple INSERT statment. > > --- Howard Weisberg <[EMAIL PROTECTED]> wrote: > > I'm logging data using AdoNetAppender_SqlServer. Some of the info I > > > want to log is best expressed in SQL columns of the int data type. > > Also some of the information is only defined during certain events. > > > > Ideally, when I log other events, the undefined int information > should > > > be shown as SQL nulls. However so far I've only been able to figure > > > out how to log int values using a "magic" numerical value (in my > case > > zero) > > to flag undefined values. > > > > Null values do seem to be supported for string data. > > > > The following doesn't work for me. It causes the SQL exception > "data > > is not in the correct format." > > > > int spid = MyGetSPID (transaction); > > log4net.GlobalContext.Properties["spid"] = spid; > transaction.Commit(); > > > EventLog.Info ("Database Updated"); > > log4net.GlobalContext.Properties["spid"] = null; > > //log4net.GlobalContext.Properties.Remove("spid") also doesn't > work. > > > > Instead I have to use the following: > > > > const int UNDEFINED_VALUE = 0; > > int spid = MyGetSPID (transaction); > > log4net.GlobalContext.Properties["spid"] = spid; > transaction.Commit(); > > > EventLog.Info ("Database Updated"); > > log4net.GlobalContext.Properties["spid"] = UNDEFINED_VALUE; > > > > My config file includes the following: > > > > <commandText value="INSERT INTO EventLog ([Date], ..., [SPID]) > VALUES > > (@date, ..., @spid)" /> <parameter> > > <parameterName value="@date" /> > > <dbType value="DateTime" /> > > <layout type="log4net.Layout.PatternLayout" > > value="%date{yyyy'-'MM'-'dd HH':'mm':'ss'.'fff}" /> </parameter> > > > > ... > > > > <parameter> > > <parameterName value="@spid" /> > > <dbType value="Int32" /> > > <layout type="log4net.Layout.PatternLayout" > > value="%property{spid}" /> </parameter> > > > > My table includes the following: > > > > CREATE TABLE EventLog > > ( > > [ID] [int] IDENTITY (1, 1) NOT NULL , > > [Date] [datetime] NOT NULL , > > > > ... > > > > [SPID] [int] > > ) > > > > How do I get log4net to handle null integer values? > > > > The information contained in this e-mail and any attached documents > > > may be privileged, confidential and protected from disclosure. If > you > > > are not the intended recipient you may not read, copy, distribute > or > > use this information. If you have received this communication in > > error, please notify the sender immediately by replying to this > > message and then delete it from your system. > > > > The information contained in this e-mail and any attached documents > may be privileged, confidential and protected from disclosure. If > you > are not the intended recipient you may not read, copy, distribute or > use this information. If you have received this communication in > error, please notify the sender immediately by replying to this > message and then delete it from your system. >
