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

Вот служба xamlx:

enter image description here

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

-1
Nido 26 Фев 2016 в 19:52

2 ответа

Лучший ответ

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

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

Один для получения регистратора:

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

Второй для регистрации ошибки:

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

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

enter image description here

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

-2
Nido 26 Фев 2016 в 21:00

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

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

0
Joao 27 Фев 2016 в 18:10