2016-11-16 164 views
3

我一直在爭論這個問題很長一段時間。當我嘗試登錄到Oracle 11g數據庫中的Number(38,0)字段時。我得到這個錯誤:登錄到Oracle數據庫字段時,Log4net記錄到Oracle拋出錯誤?

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大小。我已經嘗試了十進制和十進制,並設置了比例和精度。我不確定還有什麼要做,但我知道目前的價值是數字。

下面是一些代碼調用記錄器的值被默認在何處記錄和也。

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

回答

2

你想,當你添加my_param屬性的LogicalThreadContext以消除結腸。

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

目前你的財產%語法的使用不匹配與您要添加的屬性的名稱。

+0

我已經想通了,但卻沒能回答我的問題。謝了哥們。 –