Я хочу смочь сделать вход в систему каждого блока выгоды. Что-то вроде этого.
catch (Exception exception)
{
Logger.Write(exception);
}
и затем настройки в конфигурации заберут сообщение и свойство StackTrace и т.д. с помощью клиентского слушателя.
Я хотел бы пользоваться Библиотекой Предприятия, Регистрирующей Блок приложений. Я уверен, что кто-то уже, должно быть, сделал это.
Другие опубликовали несколько хороших ссылок о том, как заставить работать Logging Application Block (LAB), поэтому я не буду дублировать их здесь.
Что касается форматирования вашего исключения, у вас есть 3 варианта, которые я могу придумать:
Exception.ToString ()
(это неплохо) Если вариант 1 не соответствует вашим потребностям, я бы порекомендовал использовать вариант 3 (поскольку вариант 2 является излишним).
Простым примером может быть что-то вроде:
catch (Exception exception)
{
Logger.Write(LogHelper.CreateExceptionString(exception));
}
...
public static string CreateExceptionString(Exception e)
{
StringBuilder sb = new StringBuilder();
CreateExceptionString(sb, e, String.Empty);
return sb.ToString();
}
private static void CreateExceptionString(StringBuilder sb, Exception e, string indent)
{
if (indent == null)
{
indent = String.Empty;
}
else if (indent.Length > 0)
{
sb.AppendFormat("{0}Inner ", indent);
}
sb.AppendFormat("Exception Found:\n{0}Type: {1}", indent, e.GetType().FullName);
sb.AppendFormat("\n{0}Message: {1}", indent, e.Message);
sb.AppendFormat("\n{0}Source: {1}", indent, e.Source);
sb.AppendFormat("\n{0}Stacktrace: {1}", indent, e.StackTrace);
if (e.InnerException != null)
{
sb.Append("\n");
CreateExceptionString(sb, e.InnerException, indent + " ");
}
}
Microsoft предоставила подробное руководство по этому поводу здесь: Разработка приложений с использованием блока приложения для ведения журнала
Стоит ознакомиться с тем, что они говорят, так как это довольно мощно.
Если вы хотите чего-то более приземленного, некоторые рабочие примеры представлены в этой статье блога: Как настроить и использовать блок приложения для ведения журнала
Если у вас все еще возникают проблемы после их прочтения, отредактируйте свое сообщение, указав более подробную информацию о том, в чем проблема.
Вам нужно добавить соответствующий слушатель для текстовых файлов - см. этот пост, он для ASP.NET, но конфигурационные файлы работают одинаково для всех приложений.