На каждом перерыве в Production / QA / Dev получение корня исключения является очень важным и требующим времени процессом.
Поскольку веб-приложения работают в многопользовательской среде и не имеют состояния \ асинхронного (HTTP), поиск файлов журналов событий / корней и их основной причины - действительно сложная задача; Также это зависит от того, насколько обучен Конечный пользователь, чтобы подробно объяснить проблему.
Я придумал творческий способ записать исключения. Что облегчает работу для конечного пользователя и команды разработчиков?
Мы будем следовать подписи, чтобы записывать исключения в файл XML, и которые можно обрабатывать удаленно для просмотра или создания отчетов об исключениях
Подпись метода Static в классе регистрации ошибок выглядит следующим образом
WriteLog (уникальный номер, имя модуля, приоритет, уровень, пользовательское сообщение строки, исключение с трассировкой стека);
Я знаю, что есть много многократно используемых библиотек обработки исключений, но я посмотрел на уникальный номер, чтобы отследить проблему, которая должна отображаться для конечного пользователя
Ответ пользователю:
Если ожидается, что Исключение будет обработано и использовано, разработчик покажет действительное удобное для пользователя сообщение конечному пользователю. В случае непредвиденных или исключительных ситуаций на прикладном уровне (Global .asax) ответ будет очищен, и пользовательское сообщение в HTML будет записано обратно пользователю с уникальным идентификатором, как показано ниже
«Произошла непредвиденная ошибка, исключение было записано для дальнейших действий; Пожалуйста, используйте # уникальный номер, сгенерированный , чтобы сообщить команде поддержки «
Сведения о параметре:
Уникальный номер: Это уникальный номер, генерируемый для каждого исключения, свойство только для чтения (get) в классе ErrorLogging, которое будет уникальным для каждого исключения, это будет конкатенация Час + Минуты + Секунды + Миллисекунды ; изначально я думал использовать GUID, но потом конечному пользователю было бы сложно запомнить GUID, чтобы сообщить о проблеме.
Открытая строка strExceptionID {
Get {
return DateTime.Now.ToString(“HHmmssfff”);
}
}
Имя модуля: это будет статическая переменная Enum с именем модуля
Пример:
enum ModuleName {
Module1,
Module2,
Module3 };
Приоритет: это будет переменная Static Enum с Приоритетом, разработчик должен определить приоритет, например, если это ошибка проверки даты или целочисленного формата с использованием «Низкий» или если она неожиданна в вызове бизнес-уровня, тогда используйте «2» ,
Я думаю, что Priority High следует использовать только в DAL или в Business Logic Layer или как, например, в случае сбоя интерфейса с SAP или Ariba.
Пример: enum Priority {
High =1,
Medium =2,
Low =3, };
Слой:
Это будет переменная Static Enum со слоем
Пример: enum Layer {
Presentation,
Business,
DataAccess
};
Строка Пользовательское сообщение:
Это необязательный параметр, и разработчик может предоставить информацию, помогающую объяснить причину или пустую строку.
Исключение с трассировкой стека: это будет объект исключения, который будет дополнительно обработан внутри метода.
Обработка, выполненная внутри метода журнала ошибок:
Метод дополнительно получает вошедший в систему идентификатор пользователя и временную метку и записывает их в файл XML.
Плюсы:
-> XML Logging позволит нам обработать его любым способом
-> Исключения можно просматривать удаленно в браузере.
-> Легко отследить и найти любое исключение.
-> Мы можем искать, сортировать исключения на основе модуля, приоритета, отметки времени, идентификатора пользователя и т. Д.
-> Мы можем генерировать отчеты @ Уровень модуля, Уровень, Приоритет, Время ...
Минусы:
Зависимость от XML-файла: если он потеряет все исключения, все равно возникнет ошибка, мы можем преодолеть это двумя способами; своевременная запись xml в базу данных или запись в журнале просмотра событий, поскольку у нас всегда будет резервная копия.
На основании тeview комментарии Я опубликую XML-схему и страницу ASPX для просмотра и поиска ошибок.
Пожалуйста, найдите время, чтобы просмотреть и оставить свой отзыв.