2012-12-04 17 views
1

我正在使用NLog来记录我所有的.NET应用程序。我正在寻找一款能够帮助我轻松查看这些长日志的软件。所以Legit Log Viewer找到我。但是,我无法查看日志文件,日志查看器显示“不支持的日志格式”。以下是我的NLog.conf文件和Legit Log Viewer布局文件。任何人都可以帮我弄清楚这个错误吗?用于NLog的Legit日志查看器不工作

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> 

回答

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> 

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

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

P.S.请不要犹豫,在L​​L网站上通过电子邮件给我打电话来帮助你。