NLog 不保留空格

NLog not preserving whitespace

我正在尝试为我的 C# 应用程序配置 NLog。我已经进行了日志记录,但它似乎对空白有自己的想法。这是我的 NLog.config:

<?xml version="1.0" encoding="utf-8" ?>
<nlog xmlns="http://www.nlog-project.org/schemas/NLog.xsd"
      xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
      xsi:schemaLocation="http://www.nlog-project.org/schemas/NLog.xsd NLog.xsd"
      autoReload="true"
      throwExceptions="false"
      internalLogLevel="Off" internalLogFile="c:\temp\nlog-internal.log" >

  <variable name="brief" 
            value="${longdate} | ${level} | ${logger} |: ${message}" />
  <variable name="verbose" 
            value="${longdate} | ${machinename} | ${processid} | ${processname} | ${level} | ${logger} |: ${message}" />

  <targets>
    <target name="myLog" xsi:type="File" fileName="myLog.txt" layout="${verbose}" />
    <target name="console" xsi:type="Console" layout="${brief}" />
  </targets>

  <rules>
    <logger name="*" minlevel="Debug" writeTo="myLog" />
    <logger name="*" minlevel="Info" writeTo="console" />
  </rules>
</nlog>

日志的输出当前如下所示:

2016-05-19 12:08:00.0302|DEBUG|Namespace.ClassName|:Some log message here...

出于某种原因,NLog 正在删除我在 targetlayout 属性中定义的空格。我希望日志条目看起来像:

2016-05-19 12:08:00.0302 | DEBUG | Namespace.ClassName |: Some log message here...

如何让 NLog 保留 layout 属性中的空格?

我也尝试过将 level 设置为固定长度,并像这样填充:${padding:padding=5,fixedlength=true:${level:uppercase=true}},如 this post 中所述,但仍然没有成功。

我发现当解决方案的路径中有一个 # 字符时,NLog 不能很好地发挥作用。重命名了路径,它又开始工作了。