Hangfire не входит в NLog - PullRequest
       46

Hangfire не входит в NLog

0 голосов
/ 03 августа 2020

Я создал отдельную копию проблемы здесь: https://github.com/GuerrillaCoder/HangfireLoggingTest

Используемые версии:

  <ItemGroup>
    <PackageReference Include="Hangfire.AspNetCore" Version="1.7.12" />
    <PackageReference Include="Hangfire.Console" Version="1.4.2" />
    <PackageReference Include="Hangfire.Core" Version="1.7.12" />
    <PackageReference Include="Hangfire.MemoryStorage.Core" Version="1.4.0" />
    <PackageReference Include="NLog.Web.AspNetCore" Version="4.9.3" />
  </ItemGroup>

Проблема:

Hangfire never записывает что-либо в журналы, что очень затрудняет отладку проблем, связанных с остановкой или ошибкой задач. в регистратор Nlog.

Шаг для воспроизведения

  1. git clone https://github.com/GuerrillaCoder/HangfireLoggingTest
  2. запустить проект (обратите внимание, что журналы создаются в папке LogOutput, и записывается сообщение, показывающее, что NLog работает)
  3. Перейдите к / hangfire и вручную запустите задачу
  4. Обратите внимание, что Hangfire вообще не записал никаких сообщений журнала

1 Ответ

0 голосов
/ 03 августа 2020

Попробуйте обновить ConfigureServices следующим образом:

// This method gets called by the runtime. Use this method to add services to the container.
public void ConfigureServices(IServiceCollection services)
{
    // Register NLog as LoggingProvider for Microsoft ILogger
    services.AddLogging(builder => {
       loggingBuilder.ClearProviders();
       loggingBuilder.AddNLog();
    });

    services.AddControllersWithViews();

    // Only needed for NetFramework with LibLog. NetCore uses Microsoft ILogger
    // GlobalConfiguration.Configuration.UseNLogLogProvider();

    services.AddHangfire((isp, config) =>
    {
        config.UseMemoryStorage();
        config.UseConsole(); // https://www.nuget.org/packages/Hangfire.Console/
    });
}

См. Также: https://docs.hangfire.io/en/latest/configuration/configuring-logging.html

...