Как настроить Log4net для службы рабочих процессов WCF

У меня есть очень простой проект WCF Workflow Service с одним xamlx. XAMLX также очень прост: одна операция получения и последующий вызов другого рабочего процесса xaml.

Вот сервис xamlx:

введите описание изображения здесь

У меня вопрос, как я могу настроить Log4net в моей службе xamlx, чтобы все необработанные ошибки, сгенерированные последующим рабочим процессом, могли быть записаны в журнал событий?

2 ответа

Решение

Поскольку я не мог найти какой-либо метод, который автоматически регистрирует все необработанные ошибки. Я решил свою проблему, добавив действие Try/Catch и добавив некоторые действия кода для регистрации ошибки.

Для настройки Logger я добавил это [assembly: log4net.Config.XmlConfigurator(Watch = true)] в Assembly.cs, а затем создал 2 кода деятельности.

Один, чтобы получить регистратор:

  ILog logger = LogManager.GetLogger("LogName");
  return logger;

Во-вторых, чтобы зарегистрировать ошибку:

  logger.Get(context).Error(ex.Get(context));

Мой обновленный xamlx выглядит следующим образом:

введите описание изображения здесь

Если у кого-то есть другой вариант получше, пожалуйста, дайте мне знать. Спасибо

Возможно, вы захотите взглянуть на отслеживание и отслеживание рабочих процессов. Главным образом о том, как создать свой собственный TrackingParticipant, где у вас есть несколько TrackingRecords, доступных для входа. Вы даже можете создать свой собственный CustomTrackingRecord, который будет генерироваться вашими пользовательскими действиями.

На самом деле, у вас уже есть EtwTrackingParticipant, который, вероятно, выполняет ту работу, которую вы хотите, без использования log4net. Здесь вы можете увидеть, как его настроить и получить доступ к его данным о событиях в Event Viewer.

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