Legit Log Viewer для NLog не работает

Я использую NLog для регистрации всех моих приложений.NET. И я ищу программное обеспечение, которое поможет мне легко просматривать эти длинные журналы. Итак, Legit Log Viewer приходит ко мне. Тем не менее, я не могу просматривать файлы журналов, Log Viewer говорит "неподдерживаемый формат журнала". Ниже приведены мой файл NLog.conf и файл макета Legit Log Viewer. Может кто-нибудь помочь мне разобраться в ошибке?

Целевой макет NLog.config

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

Файл макета для просмотра журнала Legit.

<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>

1 ответ

Я исправил 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, чтобы помочь вам.

Другие вопросы по тегам