Как настроить 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.