C# 如何使用nlog登录不限字符的消息
我尝试使用带有.net core 2.2的Nlog记录我的请求以进行调试。 我成功地创建了一个登录到数据库的配置,但是一些长消息被截断。 这是我的目标配置:C# 如何使用nlog登录不限字符的消息,c#,.net-core,nlog,C#,.net Core,Nlog,我尝试使用带有.net core 2.2的Nlog记录我的请求以进行调试。 我成功地创建了一个登录到数据库的配置,但是一些长消息被截断。 这是我的目标配置: <target name="database" xsi:type="Database" dbProvider="sqlserver" dbHost="${configsetting:name=NlogConnection.DbHost}" dbDatabase="${configsetting:name=NlogCo
<target name="database" xsi:type="Database"
dbProvider="sqlserver"
dbHost="${configsetting:name=NlogConnection.DbHost}"
dbDatabase="${configsetting:name=NlogConnection.Database}"
dbUserName="${configsetting:name=NlogConnection.User}"
dbPassword="${configsetting:name=NlogConnection.Password}">
<commandText>
insert into dbo.Log (
URL, Logged, Level, Message,
Logger, Callsite, Exception,isProduction
) values (
@URL, @Logged, @Level, @Message,
@Logger, @Callsite, @Exception,@isProduction
);
delete from Log where Logged <= DATEADD(DAY, -30, GETDATE());
</commandText>
<parameter name="@URL" layout="${event-properties:url}" />
<parameter name="@Logged" layout="${date}" />
<parameter name="@Level" layout="${level}" />
<parameter name="@Message" layout="${message}" />
<parameter name="@Logger" layout="${logger}" />
<parameter name="@Callsite" layout="${callsite}" />
<parameter name="@Exception" layout="${exception:tostring}" />
<parameter name="@isProduction" layout="${event-properties:isProduction}" />
</target>
如果我在VS中调试发送一个大请求,我可以看到保存body请求的字符串变量包含发送的所有信息。
但是当我登录时,我可以看到消息被截断了
非常感谢您的帮助 您如何确定它被截断了?专栏的数据类型是什么?可能与此相关:感谢@RolfKristensen,就是这样,将其转换为XML成功了,与SMS合作了很长一段时间,但从未处理过这么大的专栏。帽子提示。@Rolf我建议你们把评论转换成正确的答案,这样OP就可以关闭它了。
body = builder.ToString() + Environment.NewLine + $"Request body:{body}" + " === EOF ==="; // debug mode in VS body holds ALL of the data, I can copy the expression and see in notepad it's all there .
logger.LogInformation("isProd: {isProduction} , targeturl {url} , req {req}", coreConstants.Bools.defaults.isProd, new { url = context?.Request?.Host + context?.Request?.Path }, body);