Журнал Hangfire.Console не отображается в Личном кабинете

Я использую Hangfire целую вечность, но только недавно обнаружил, что вы можете использовать Hangfire.Console для вывода журнала, который можно увидеть на панели инструментов Hangfire.

Я видел, как это работает в чужом проекте, но при добавлении журнала в мой собственный проект я не могу заставить его работать.

В этом суть задачи. Я проверил с помощью Debugger, что все строки выполняются и работа завершается успешно.

          public async Task MethodName(PerformContext context)
    {
        var result = await apiClient.MethodName();
        if (result != null)
        {
            context.SetTextColor(ConsoleTextColor.Green);
            context.WriteLine($"Checked: {result.Checked}");
            context.WriteLine($"Cleared: {result.Cleared}");
        }
        else
        {
            context.SetTextColor(ConsoleTextColor.Red);
            context.WriteLine($"No result ...");
        }
    }

Я ожидал найти результат на своей панели инструментов Hangfire, но он не показывает никаких журналов. Я упускаю какой-то важный шаг?

Использование Hangfire 1.7.18 и Hangfire.Console 1.4.2

1 ответ

У меня была та же проблема, и оказалось, что проблема связана с асинхронным характером вашего вызова. Если вы сделаете вызов API синхронным, запись в консоль будет выполняться нормально. Мне еще предстоит найти решение этой проблемы. Если мне не хватает какой-то конфигурации, то я весь во внимании.

Обновленный код будет выглядеть примерно так: обратите внимание, что строка «результат» изменилась наvar result = apiClient.MethodName().Result;:

      public Task MethodName(PerformContext context)
{
    var result = apiClient.MethodName().Result;
    if (result != null)
    {
        context.SetTextColor(ConsoleTextColor.Green);
        context.WriteLine($"Checked: {result.Checked}");
        context.WriteLine($"Cleared: {result.Cleared}");
    }
    else
    {
        context.SetTextColor(ConsoleTextColor.Red);
        context.WriteLine($"No result ...");
    }
}
Другие вопросы по тегам