Oracle
 sql >> Base de données >  >> RDS >> Oracle

ajouter un enregistrement dans nlog au champ avec dataType =date

Les paramètres NLog DatabaseTarget sont convertis en chaîne par défaut. Vous pouvez changer le type de données en spécifiant dbType il correspond donc à la colonne de la base de données :

<target name="TRACEDatabase" type="DataBase">
    <parameter name="PROCESS_ID" layout="${event-properties:PROCESS_ID}" />
    <parameter name="TIME_STAMP" layout="${date}" dbType="DateTime" />
    <parameter name="CUSTOMER_ID" layout="${event-properties:CUSTOMER_ID}" />
</target>

D'ailleurs. c'est une mauvaise idée d'utiliser des variables globales pour transférer des détails spécifiques au contexte.

Au lieu de cela, vous devriez utiliser les propriétés NLog LogEventInfo :

var logLevel = SetLogLevel(Level.Debug);
var theEvent = new NLog.LogEventInfo(logLevel, null, "try");
theEvent.Properties["PROCESS_ID"] = LogEntity.PROCESS_ID.ToString();
theEvent.Properties["CUSTOMER_ID"] = LogEntity.CUSTOMER_ID.ToString();
log.Log(theEvent);

Voir aussi :https://github.com/NLog/NLog/wiki/ EventProperties-Layout-Renderer