Консольное приложение .Net Core 2.0 не отправляет сообщения в Loggly через NLog - PullRequest
0 голосов
/ 12 декабря 2018

У меня есть консольное приложение .NET Core 2.0 (Topshelf), которое должно отправлять журналы в Loggly.Мы уже реализовали приложение такого же типа, используя NLog, NLog.Targets.Loggly, Topshelf.NLog, loggly-csharp-config и loggly-csharp.

Я добавил две дополнительные цели: консоль и текст.Обе другие цели работают нормально.

Ключ клиента Loggly отлично работает в наших приложениях .NET 4.71 аналогичной структуры с теми же пакетами.

Вот ссылка на пакет, который у меня есть:

<ItemGroup>
<PackageReference Include="Autofac" Version="4.8.1" />
<PackageReference Include="loggly-csharp" Version="4.6.1.64" />
<PackageReference Include="loggly-csharp-config" Version="4.6.1.64" />
<PackageReference Include="NLog.Targets.Loggly" Version="4.7.0" />
<PackageReference Include="Topshelf" Version="4.1.0" />
<PackageReference Include="Topshelf.NLog" Version="4.1.0" />

Редактировать: Добавление еще кода реализации из файла App.config:

<configSections>
    <section name="nlog" type="NLog.Config.ConfigSectionHandler, NLog" />
    <section name="loggly" type="Loggly.Config.LogglyAppConfig, Loggly.Config, Version=3.5.0.0, Culture=neutral, PublicKeyToken=null" />
  </configSections>
...

<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="Trace" internalLogFile="c:\temp\nlog-internal.log">
    <extensions>
      <add assembly="NLog.Targets.Loggly" />
    </extensions>
    <variable name="DefaultLayout" value="${longdate} | ${level:uppercase=true:padding=5} | ${message} | ${exception:format=@} | ${callsite} | ${callsite-linenumber} | ${all-event-properties}" />
    <targets async="true">
      <target xsi:type="File" name="logfile" fileName="logs/log.txt"  layout="${DefaultLayout}"/>
      <target xsi:type="Console" name="console"  layout="${DefaultLayout}"/>
      <target xsi:type="Loggly" name="Loggly" layout="${DefaultLayout}"/>
    </targets>
    <rules>
      <logger name="*" minlevel="Trace" writeTo="logfile,Loggly,console" />
    </rules>
  </nlog>
  <loggly
    xmlns="Loggly"
    applicationName="masked"
    customerToken="masked"
    throwExceptions="true">
    <transport logTransport="Https"/>
    <tags>
      <simple>
        <tag value="DEV"/>
      </simple>
      <complex>
        <tag type="Loggly.HostnameTag" formatter="{0}"/>
        <tag type="Loggly.ApplicationNameTag" formatter="{0}"/>
      </complex>
    </tags>
  </loggly>

Похоже, что внутренний журнал показывает, что есть хотя бы попытки поразить Loggly.

2018-12-12 09: 05: 09.8816 Цели отладки для Topshelf.Hosts.ConsoleRunHost по уровню: 2018-12-12 09: 05: 09.8816 Трассировка отладки => 2018-12-1209: 05: 09.8816 Debug Debug => 2018-12-12 09: 05: 09.8816 Debug Info => 2018-12-12 09: 05: 09.8816 Debug Warn => 2018-12-12 09: 05: 09.8816 Ошибка отладки => 2018-12-12 09: 05: 09.8816 Фатальная отладка => 2018-12-12 09: 05: 10.1486 Trace AsyncWrapper (Name = Loggly): запись 1 события (таймера) 2018-12-12 09: 05: 10.1486 TraceAsyncWrapper (Name = console): запись 1 события (Timer) 2018-12-12 09: 05: 10.1486 Trace AsyncWrapper (Name = logfile): запись 1 события (Timer) 2018-12-12 09: 05: 10.1747 Открытие трассы

1 Ответ

0 голосов
/ 14 декабря 2018

Благодаря комментарию @RolfKristensen я попытался вручную настроить клиент csharp с помощью кода, и он работает нормально.Мне придется перемещаться по конфигам в appSettings и попросить менеджера конфигурации подобрать их.Я думаю, что loggly-csharp нужна лучшая документация, НЕ использующая их примеры конфигурации в .NET Core.

...