NLog DatabaseTarget tham số chuyển đổi thành chuỗi theo mặc định. Bạn có thể thay đổi kiểu dữ liệu bằng cách chỉ định dbType
vì vậy nó khớp với cơ sở dữ liệu-cột:
<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>
Btw. việc sử dụng các biến toàn cục để chuyển các chi tiết ngữ cảnh cụ thể là một ý tưởng tồi.
Thay vào đó, bạn nên sử dụng Thuộc tính 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);
Xem thêm: https://github.com/NLog/NLog/wiki/ EventProperties-Layout-Renderer