Reputation: 439
I'm using nlog to record to an sql database via aWCP service application using C#.NET 4.0, and this works ok:
NLOG Config
<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>
I'm trying to record a custom object that is returned by a web service, and wondering if this can be easily stored?
I was trying something along the lines of:
CustomType returnPayload = controller.TransferPatient(request)
logger.Debug<CustomType>("Return Payload",returnPayload);
But not sure how to write it back to the @CallSite parameter that is a nvarchar(MAX) type in sql server.
Upvotes: 0
Views: 285
Reputation: 439
Found this:
logger.Debug("Return Payload {@value1}", new { requestInfo = request, Return = returnPayload});
This writes the value using:
<parameter name="@message" layout="${message}" />
Upvotes: 0