В настоящее время я использую Hangfire для запуска некоторых заданий в службе Windows. Работы запускаются из WebAPI.Вход в NLog в Hangfire.io
В настоящее время моя система работает нормально, когда все задания успешны, но я не получаю регистрацию, когда происходят исключения. Кто-нибудь получил какой-либо опыт использования настраиваемого регистратора для получения сообщений от Hangfire?
Мой регистратор является основным интерфейсом NLog:
public class Logger : ILogger
{
public readonly NLog.Logger logger;
public Logger(string name)
{
if (LogManager.Configuration == null)
{
FallbackInitialisation();
}
logger = LogManager.GetLogger(name);
}
public Trace(string message)
//etc.
}
Я настройка моего сервера заданий замедленного воспламенения в моей службе окон так:
SqlServerStorage storage = new SqlServerStorage("myConnectionString");
BackgroundJobServerOptions options = new BackgroundJobServerOptions();
m_server = new BackgroundJobServer(options, storage);
GlobalJobFilters.Filters.Add(new AutomaticRetryAttribute { Attempts = 0 });
Основываясь на hangfire documentation, я просто попытался после него добавив требуемые ссылки и добавив следующее после настройки сервера заданий, однако все еще не было обработано журналов:
var properties = new NameValueCollection();
properties["configType"] = "INLINE";
LogManager.Adapter = new NLogLoggerFactoryAdapter(properties);
Я просто имитирую исключение throw new Exception()
в методе, вызванном заданием. Задание создаются при вызове WebAPI так:
[HttpGet]
public void TestStartJob()
{
m_logger.Trace("TestStartJob");
BackgroundJob.Enqueue(() => m_service.TestStartJob());
}
Что я ищу, то, если кто имеет опыт в получении лесозаготовок правильно настроено для использования с замедленным воспламенением.
замедленного воспламенение регистрирует все исключения в таблице HangFire.State. Вы уверены, что вам нужно больше журналов? –
@KirillBestemyanov Да, я знаю, что это существует, и я вижу исключения в веб-интерфейсе hangfire, но я хотел бы иметь возможность видеть исключения в наших собственных журналах, чтобы их можно было обнаружить как через веб-приложение, так и путем регистрации, когда что-то падает над – Thewads
Если 'AutomaticRetryAttribute' не создает никаких журналов на исключении, мне кажется, что ведение журнала работает не полностью. Можете ли вы сказать мне, какие версии Common.Logging вы используете и какой пакет и версия используете для Common.Logging адаптера NLog? – odinserj