Исключение при ведении журнала .Data с использованием Log4Net

Мы только начинаем работу с Log4Net (и желаем, чтобы мы сделали это раньше). Несмотря на то, что мы можем видеть внутренние исключения и т. Д., Единственная вещь, которая, кажется, отсутствует в выходных данных при регистрации исключения, - это любая информация о ключах / значениях, содержащаяся в «Exception.Data». Есть ли способ сделать это "из коробки"? Если нет, так как мы действительно только начинаем, где искать способ реализации этой функциональности?

В качестве примера, пожалуйста, посмотрите очень простой псевдокод ниже. Мы не хотим засорять сообщение об исключении контекстной информацией о том, в чем была проблема (мы, вероятно, потеряли больше информации в данных, которые помогли бы исследовать реальную проблему). Но сейчас все, что мы видим в наших журналах, - это тип исключения, сообщение, любая трассировка стека, но не «данные» исключения. Это означает, что в наших журналах мы теряем идентификатор клиента и т. Д. Как мы можем легко внести эту информацию в наши журналы (без необходимости кодировать ее вручную в каждом перехвате исключения).

try
{
   var ex = new ApplicationException("Unable to update customer");
   ex.Data.Add("id", customer.Id);
   throw ex;
}
catch(ApplicationException ex)
{
   logger.Error("An error occurred whilst doing something", ex);
   throw;
}
17
задан Paul Hadfield 4 August 2011 в 15:52
поделиться