Log4net AdoNetAppender参数的默认值

Log4net AdoNetAppender参数的默认值,log4net,adonetappender,Log4net,Adonetappender,我正在使用log4net和AdoNetAppender。它将所有日志信息记录到一个表中。此表实际上有2个整数列(可以为null) 以下是我的log4net配置的相关部分: //其他参数为DealID 我发现,如果我没有使用类似于log4net.ThreadContext.Properties[“DealID”]=DealID的东西显式设置它向我抛出一个异常: System.FormatException occurred Message="Failed to convert parame

我正在使用log4net和AdoNetAppender。它将所有日志信息记录到一个表中。此表实际上有2个整数列(可以为null)

以下是我的log4net配置的相关部分:


//其他参数为DealID
我发现,如果我没有使用类似于
log4net.ThreadContext.Properties[“DealID”]=DealID的东西显式设置它向我抛出一个异常:

System.FormatException occurred
  Message="Failed to convert parameter value from a String to a Int32."
  Source="System.Data"
  StackTrace:
       at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
  InnerException: System.FormatException
       Message="Input string was not in a correct format."
       Source="mscorlib"
       StackTrace:
            at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)
            at System.Number.ParseInt32(String s, NumberStyles style, NumberFormatInfo info)
            at System.String.System.IConvertible.ToInt32(IFormatProvider provider)
            at System.Convert.ChangeType(Object value, Type conversionType, IFormatProvider provider)
            at System.Data.SqlClient.SqlParameter.CoerceValue(Object value, MetaType destinationType)
       InnerException: 
我必须将其设置为:

log4net.ThreadContext.Properties[“DealID”]=0

我是否可以在log4net配置中为此Int32字段设置默认参数值,这样,如果没有提供值,我就不需要显式地将其设置为0?这让我想知道为什么设置为varchar的字段不会发生这种情况(尽管没有向它们提供值)。

更改您的appender:


为了表示信任,我找到了它。(还有一些其他的搜索也在尝试做同样的事情