2009-12-04 8 views
5

Pracowałem trochę z log4net i wstawiłem dodatkowe pola, ale mam problem z dodaniem pól int. Czy ktokolwiek może pokazać konfigurację, w której używane jest int, ponieważ nie mogę go znaleźć na ich homepage.log4net i ints

Zwykle wystarczy użyć konfigurację takiego:

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

Ale byłoby bardziej optymalne dla poszukiwania w bazie danych dziennika, jeśli to pole mogło int zamiast.

Odpowiedz

4

Numer dbType property jest typu System.Data.DbType. Tam możesz użyć wartości Int32 do reprezentowania liczb całkowitych.

+0

co Char? Dzięki! Nie ma tam listy. Dzięki! – Euridice01

+0

@ Euridice01, które byłyby ciągami znaków nie będącymi znakami Unicode, należy użyć 'AnsiString' lub' AnsiStringFixedLength'. –

16

Po prostu zmiana na Int32 nie rozwiązała problemu. Dla innych, którzy chcą rozwiązać ten problem, oto rozwiązanie:

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

Będzie to również dotyczyć wartości null

+0

Dziękuję! Dla przyszłych czytelników będzie to także wartość odczytana ustawiona w log4net.GlobalContext. W powyższym przykładzie (ta odpowiedź), jeśli ustawisz GlobalContext "UserID" (gdzie UserID jest kluczem) i ustawisz wartość, ten kod podniesie wartość. i tak!! zerowane są obsługiwane. Dziękuję Ci! – granadaCoder