1

我正在使用NLog来记录我所有的 .NET 应用程序。我正在寻找一种可以帮助我轻松查看这些长日志的软件。所以合法的日志查看器来找我。但是,我无法查看日志文件,日志查看器显示“不支持的日志格式”。以下是我的 NLog.conf 文件和合法日志查看器布局文件。谁能帮我找出错误?

NLog.config 目标布局

layout="${level} | ${longdate} | ${callsite:className=true:fileName=false:includeSourcePath=false:methodName=true} | ${message} ${exception:format=tostring}"

我的合法日志查看器布局文件。

<Description>
${level} | ${longdate} | ${logger} | ${message}
</Description>
<LogLine>
  <Fields>
<LogFieldFormat Name="Level" FieldType="String" Delimiter="|" FilterColumn="true" HighlightRows="true" />
<LogFieldFormat Name="DateTime" FieldType="DateTime" Delimiter="|" Format="yyyy-MM-dd HH:mm:ss.ffff" />
<LogFieldFormat Name="Logger" FieldType="String" Delimiter="|" />
<LogFieldFormat Name="Message" FieldType="String" />
  </Fields>
</LogLine>
4

1 回答 1

2

我已修复 XML 配置以支持您的日志格式。

<?xml version="1.0" encoding="utf-8" ?>
<LogFormat xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
           xmlns:xsd="http://www.w3.org/2001/XMLSchema"
           xmlns="http://www.legitlog.com/LogFormatSchema.xsd"
           FormatName="NLog (Joe Melbourne)">
  <Description>
    ${level} | ${longdate} | ${callsite:className=true:fileName=false:includeSourcePath=false:methodName=true} | ${message} ${exception:format=tostring}
  </Description>
  <LogLine>
    <Fields>
      <LogFieldFormat Name="Level" FieldType="String" Delimiter="| " FilterColumn="true" HighlightRows="true" />
      <LogFieldFormat Name="DateTime" FieldType="DateTime" Delimiter=" |" Format="yyyy-MM-dd HH:mm:ss.ffff" />
      <LogFieldFormat Name="Callsite" FieldType="String" Delimiter="|" />
      <LogFieldFormat Name="Message" FieldType="String" Delimiter="&#xD;&#xA;" Multiline="true" />
    </Fields>
  </LogLine>
</LogFormat>

日期周围有奇怪的空格,所以我更改分隔符以使用它们。我还为最后一个字段添加了分隔符,并使其支持每条消息多行。

在即将到来的更新中,我将让日志查看器自动修剪日期和数字周围的空格。

PS 请不要犹豫,通过 LL 网站上的电子邮件联系我以帮助您。

于 2013-01-13T17:33:29.850 回答