NLog DatabaseTarget पैरामीटर डिफ़ॉल्ट रूप से स्ट्रिंग में कनवर्ट करता है। आप dbType
. निर्दिष्ट करके डेटाटाइप को बदल सकते हैं इसलिए यह डेटाबेस-कॉलम से मेल खाता है:
<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>
बीटीडब्ल्यू। संदर्भ विशिष्ट विवरण स्थानांतरित करने के लिए वैश्विक चर का उपयोग करना एक बुरा विचार है।
इसके बजाय आपको 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);
यह भी देखें:https://github.com/NLog/NLog/wiki/ EventProperties-लेआउट-रेंडरर