Уровни исключений и ведение журнала
Я должен разработать систему интеграции с различными информационными системами.
В процессе разработки будут возникать случаи, когда потребуется в непредвиденных ситуациях отправлять уведомления по почте, в других случаях записывать информацию в журнал или отправлять SMS в критических ситуациях.
Для регистрации и других уведомлений я выбрал Monolog.
Вопрос в том, как организовать работу с исключениями так, чтобы были разные уровни исключений и выполнялись соответствующие действия (протоколирование и т. д.)?
Я искал информацию в разных источниках, нашел несколько описаний. Некоторые разработчики создают 3 уровневые интерфейсы для исключений:
UnloggedInterface - все необработанные ошибки регистрируются по умолчанию. Этот интерфейс отмечает исключения, которые вообще не нужно регистрировать.
PreloggedInterface — этот интерфейс отмечает исключения, которые все равно нужно регистрировать: не имеет значения, обрабатываются они или нет.
OutableInterface - этот интерфейс помечает исключения, текст которых может быть предоставлен пользователю.
Я не понимаю, какой должна быть иерархия наследования классов исключений?
На каком этапе вам нужно регистрировать исключения? В момент выброса исключений? или во время обработки исключений? а что делать с исключениями, которые не обрабатываются (как их регистрировать?)?
Может понадобиться использовать Monolog\ErrorHandler ? (но я не знаю как) ..
Пожалуйста, скажи мне, как быть? Где я могу увидеть примеры? Или где об этом почитать?
Мне бы очень хотелось понять, как это работает. И посмотрите на примеры правильной работы с включениями.
Также приведите примеры из GitHub.
Я был бы благодарен за любую помощь.
Что я уже пробовал:
I read different sources, did not understand how to put it all together