Log4net 记录到 Oracle 在记录到数字字段时抛出错误?

Log4net logging to Oracle throwing error when logging to Number fields?

我已经和这个问题斗争了很长一段时间。当我尝试登录到 Oracle 11g 数据库中的 Number(38,0) 字段时。我收到此错误:

log4net:ERROR [AdoNetAppender] ErrorCode: GenericFailure. Exception while writing to database System.FormatException: Input string was not in a correct format. at System.Number.StringToNumber(String str, NumberStyles options, NumberBuffer& number, NumberFormatInfo info, Boolean parseDecimal)

      <parameter>
        <parameterName value=":my_param" />
        <dbType value="Int32" />
        <layout type="log4net.Layout.PatternLayout">
          <conversionPattern value="%property{my_param}" />
        </layout>
      </parameter>

我试过设置 Int32 的大小。我已经尝试过 decimal 和 decimal 设置比例和精度。我不确定还能做什么,但我知道当前的值是数字。

这里是一些调用记录器进行记录的代码,以及默认值所在的位置。

log4net.LogicalThreadContext.Properties[":my_param"] = 132;
log.Info("Application Start");  //Error occurs here in the output window

您想在将 my_param 属性 添加到 LogicalThreadContext 时删除该冒号。

log4net.LogicalThreadContext.Properties["my_param"] = 132;

目前您对 %属性 语法的使用与您要添加的 属性 的名称不匹配。