Грамотно спроектированная архитектура современных программных продуктов включает в себя
модули обработки ошибок и ведения журнала событий, возникающих в ходе работы приложения.
Возникновение ошибок в программе во многих случаях обусловлено некорректными данными,
переданными приложению, либо некорректной последовательностью действий пользователя при работе с
программой. Для обнаружения и устранения проблем, обнаруженных в системе, разработчики используют
записи из журналов ошибок и сообщений приложения для восстановления контекста выполнения,
приведшему к возникновению проблемы.