【问题标题】:Using Nlog to write custom object to an sql server database table使用 Nlog 将自定义对象写入 sql server 数据库表
【发布时间】:2018-08-17 11:00:40
【问题描述】:

我正在使用 nlog 通过使用 C#.NET 4.0 的 aWCP 服务应用程序记录到 sql 数据库,这可以正常工作:

NLOG 配置

<target name="database" xsi:type="Database">
  <connectionString>
    CONNECTION DETAILS REMOVED
  </connectionString>
  <commandText>
    insert into tablex (
    Application, Logged, Level, Message,
    ServerName, Port, Url, Https,
    ServerAddress, RemoteAddress,
    Logger, Callsite, Exception
    ) values (
    @Application, @Logged, @Level, @Message,
    @ServerName, @Port, @Url, @Https,
    @ServerAddress, @RemoteAddress,
    @Logger,@CallSite, @Exception
    );
  </commandText>
  <parameter name="@application" layout="" />
  <parameter name="@logged" layout="${date:format=yyyy-MM-ddTHH\:mm\:ss.fff" />
  <parameter name="@level" layout="${level}" />
  <parameter name="@message" layout="${message}" />


  <parameter name="@serverName" layout="" />
  <parameter name="@port" layout="" />
  <parameter name="@url" layout="" />
  <parameter name="@https" layout="" />

  <parameter name="@serverAddress" layout="" />
  <parameter name="@remoteAddress" layout="" />

  <parameter name="@logger" layout="${logger}" />
  <parameter name="@callsite" layout="" />
  <parameter name="@exception" layout="${exception:tostring}" />
</target>

我正在尝试记录由 Web 服务返回的自定义对象,并想知道这是否可以轻松存储?

我正在尝试以下方式:

CustomType returnPayload = controller.TransferPatient(request)
logger.Debug<CustomType>("Return Payload",returnPayload);

但不知道如何将其写回sql server中的nvarchar(MAX)类型的@CallSite参数。

【问题讨论】:

  • 能否将对象转成JSON并将字符串存入数据库?

标签: c# wcf nlog


【解决方案1】:

找到这个:

logger.Debug("Return Payload {@value1}", new { requestInfo = request, Return = returnPayload});

这会使用以下方法写入值:

<parameter name="@message" layout="${message}" />

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2021-02-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多