C# NLog - 如何停止用 NLog 替换换行符?

标签 c# nlog

我想弄清楚如何阻止 NLog 替换我正在记录的字符串中的换行符。我希望输出包含所有换行符,而不是将整个输出放在一行中。

有人可以帮忙吗?

配置:

<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="udp" xsi:type="NLogViewer" address="udp4://192.168.0.101:7071" />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="udp" />
  </rules>
</nlog>

代码:

var logger = LogManager.GetLogger($"Test");
var dumpStr = builder.ToString();
logger.Info(dumpStr);

最佳答案

输出的方式由layout 控制。 message被格式化。您可以使用 ${message:raw=true} 声明告诉它输出原始数据。

default布局是:

${longdate}|${level:uppercase=true}|${logger}|${message}

所以我们将其更改为:

${longdate}|${level:uppercase=true}|${logger}|${message:raw=true}

您可以像这样将此选项添加到您的目标:

<?xml version="1.0" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance">
  <targets>
    <target name="udp" 
            xsi:type="NLogViewer" 
            address="udp4://192.168.0.101:7071" 
            layout="${longdate}|${level:uppercase=true}|${logger}|${message:raw=true}"
    />
  </targets>

  <rules>
    <logger name="*" minlevel="Trace" writeTo="udp" />
  </rules>
</nlog>

关于C# NLog - 如何停止用 NLog 替换换行符?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/67771290/

相关文章:

c# - 在 RichTextBox 中显示 NLog 跟踪

c# - NLog 自定义目标 XSD 警告

nlog - 如何使 aspnet-request 在我的 NLog 配置中可用?

c# - 如何在 WPF 中将控件标记为 'Private'?

c# - 退出(Quit)实现

c# - 更改 gridview 行颜色 ASP.NET

c# - 从数据库中插入和检索音频和视频

c# - 本地 Azure 函数 ClaimsPrincipal

编程配置中的 c# NLog 自定义定界符

.net - NLog 的 Couchbase