Thank you so much, but how can I set the type of the parameter ?
Here is my cofig file:
<parameter>
<parameterName value="@ProcessID" />
<dbType value="Int64" />
<layout type="log4net.Layout.PatternLayout" value="%X{ProcessID}" />
</parameter>
Where should I add MyAdoNetAppenderParameter ?
Stephen Murtagh wrote:
>
> I had a similar problem about a year back, ended up subclassing
> AdoNetAppenderParameter and overriding the FormatValue method as below:
>
> public class MyAdoNetAppenderParameter : AdoNetAppenderParameter
> {
> /// <summary>
> /// Custom version of FormatValue method which also converts NullText
> value (null) to DBNull
> /// </summary>
> /// <param name="command"></param>
> /// <param name="loggingEvent"></param>
> public override void FormatValue(System.Data.IDbCommand command,
> log4net.Core.LoggingEvent loggingEvent)
> {
> // Lookup the parameter
> IDbDataParameter param =
> (IDbDataParameter)command.Parameters[ParameterName];
>
> // Format the value
> object formattedValue = Layout.Format(loggingEvent);
>
> // If the value is null then convert to a DBNull
> if ((formattedValue == null) || (formattedValue.ToString() ==
> SystemInfo.NullText))
> {
> formattedValue = DBNull.Value;
> }
>
> param.Value = formattedValue;
> }
> }
>
> This can be intergrated with any other changes to your existing logging
> code and only one minor change to the config file - set the type of the
> parameter to that of your new class above.
>
> Hope this helps.
>
> Is there a better or recommended way of doing this?
>
>
> -----bolikdimon <[EMAIL PROTECTED]> wrote: -----
>
>
> To: [email protected]
> From: bolikdimon <[EMAIL PROTECTED]>
> Date: 01/08/2007 01:02PM
> Subject: AdoNetAppender problem.
>
>
> Hello. Help me please.
> I'm using AdoNetAppender. How can I pass NULL value into stored procedure
> ?
> Here is my code:
> ...
> ThreadContext.Properties["ProcessID"] = DbNull.Value;
> log.Debug(message);
>
> Config-file:
> <parameter>
> <parameterName value="@ProcessID" />
> <dbType value="Int64" />
> <layout type="log4net.Layout.PatternLayout" value="%X{ProcessID}"
> />
> </parameter>
>
> What's wrong ?
>
> --
> View this message in context:
> http://www.nabble.com/AdoNetAppender-problem.-tf2939176.html#a8217407
> Sent from the Log4net - Users mailing list archive at Nabble.com.
>
>
>
> *********************************************************************************
>
> Disclaimer: This electronic mail, together with any attachments, is for
> the exclusive and confidential use of the recipient addressee. Any other
> distribution, use or reproduction without our prior consent is
> unauthorised and strictly prohibited. If you have received this message in
> error, please delete it immediately and contact the sender directly or the
> Robert Wiseman & Sons Ltd IT Helpdesk on +44 (0)1355 270634. Any views or
> opinions expressed in this message are those of the author and do not
> necessarily represent those of Robert Wiseman & Sons Ltd or of any of its
> associated companies. No reliance may be placed on this message without
> written confirmation from an authorised representative of the company.
>
> Robert Wiseman & Sons Limited reserves the right to monitor all e-mail
> communications through its network.
>
> This message has been checked for viruses but the recipient is strongly
> advised to re-scan the message before opening any attachments or attached
> executable files.
>
> ********************************************************************************
>
>
>
--
View this message in context:
http://www.nabble.com/AdoNetAppender-problem.-tf2939176.html#a8220353
Sent from the Log4net - Users mailing list archive at Nabble.com.