Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用nlog登录不限字符的消息_C#_.net Core_Nlog - Fatal编程技术网

C# 如何使用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

我尝试使用带有.net core 2.2的Nlog记录我的请求以进行调试。 我成功地创建了一个登录到数据库的配置,但是一些长消息被截断。 这是我的目标配置:

<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 &lt;= 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);