2009-12-04 8 views
5

Ich habe ein wenig mit log4net gearbeitet und habe zusätzliche Felder eingefügt, aber ich habe Probleme mit dem Hinzufügen von int-Feldern. Könnte irgendjemand eine Konfiguration anzeigen, in der ein Int verwendet wird, da ich es nicht auf ihrer homepage finden konnte.log4net und ints

ich normalerweise nur eine Konfiguration wie verwenden:

<parameter> 
     <parameterName value="@orderid" /> 
     <dbType value="string" /> 
     <size value="64" /> 
     <layout type="log4net.Layout.PatternLayout" /> 
    </parameter> 

Aber es wäre optimal für die in der Log-Datenbank suchen, wenn dieses Feld anstatt ein int gewesen sein könnte.

Antwort

4

Die dbType property ist vom Typ System.Data.DbType. Dort können Sie den Int32-Wert verwenden, um ganze Zahlen darzustellen.

+0

Was Char? Vielen Dank! Es ist nicht dort aufgeführt. Vielen Dank! – Euridice01

+0

@ Euridice01 das wäre die Nicht-Unicode-Zeichenfolgen, verwenden Sie entweder "AnsiString" oder "AnsiStringFixedLength". –

16

Nur das Ändern in Int32 behebt das Problem nicht für mich. Für andere suchen, dieses Problem zu lösen, ist hier die Lösung:

 <parameter> 
      <parameterName value="@UserID" /> 
      <dbType value="Int32" /> 
      <size value="32" /> 
      <layout type="log4net.Layout.RawPropertyLayout"> 
       <key value="UserID" /> 
      </layout> 
     </parameter> 

Dies wird auch mit NULL-Werte behandeln

+0

Vielen Dank !! Für zukünftige Leser wird dies die im log4net.GlobalContext eingestellten Werte übernehmen. Wenn Sie im obigen Beispiel (diese Antwort) den GlobalContext "UserID" festlegen (wobei UserID der Schlüssel ist), und Sie den Wert festlegen, wird dieser Code den Wert übernehmen. und ja!! Nullen werden behandelt. Vielen Dank! – granadaCoder