Как зарегистрировать «путь, пройденный» кодом и его исключениямиC#

Место общения программистов C#
Ответить
Anonymous
 Как зарегистрировать «путь, пройденный» кодом и его исключениями

Сообщение Anonymous »

Мне необходимо составить сообщение журнала по пути, пройденному кодом при щелчке пользователя. Позвольте мне привести пример:
Представьте себе классический пример: пользователь нажимает кнопку в представлении, которое вызывает код с бизнес-уровня, который вызывает код с уровня доступа к данным, который возвращает данные. в бизнес, которые возвращаются к представлению.
Я хочу составить сообщение журнала с помощью этих слоев. Вызывающий метод (в представлении), который запустил весь процесс, получит полное сообщение. Вот несколько примеров кода, которые помогут мне объяснить, чего я пытаюсь достичь.

Код: Выделить всё

public void ViewMethod()
{
try
{
BusinessMethod();
}
catch (Exception ex)
{
Logger.Enqueue("exception occurred");
Logger.Print();
}
}

public void BusinessMethod()
{
try
{
DataAccessMethod();
}
catch (Exception ex)
{
Logger.Enqueue("Exception occurred in the business method")
}
}

public void DataAccessMethod()
{
try
{
// some code that executes an SQL command
// Log the SQL Command 1
// Log the SQL Command 2 and do on...
}
catch (Exception ex)
{
Logger.Enqueue("Error occurred, SQL executed is ...", sqlExecuted);
}
}
РЕДАКТИРОВАТЬ. Причина, по которой мне это нужно, заключается в том, что мне нужно регистрировать все SQL-запросы, выполненные во всем процессе. Если в какой-либо точке всего процесса возникает ошибка, пользователь не может быть предупрежден, мне нужно сохранить как можно больше информации, потому что она понадобится специалисту службы поддержки позже.
Мой вопрос: есть ли какой-либо шаблон проектирования для его разработки или допустима ли передача ссылки на Logger через «уровни»?

Подробнее здесь: https://stackoverflow.com/questions/469 ... exceptions
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «C#»