Мне нужно разработать систему интеграции с различными информационными системами.
В процессе разработки будут случаи, когда в непредвиденных ситуациях требуется отправлять уведомления по почте, в других случаях записывать информацию в журнал или отправлять SMS в критических ситуациях.
Для логирования и других уведомлений я выбрал Monolog (только знакомлюсь с монологом).
Вопрос в том, как мне организовать работу
Exception, так, чтобы существовали разные уровни исключений и выполнялись соответствующие действия (запись логов в журнал и т. Д.)?
Я искал информацию в разных источниках, нашел несколько статей о работе с исключениями (статья на
habr).
UnloggedInterface - этим интерфейсом помечаются эксепшены, которые не надо логировать вообще.
PreloggedInterface - этим интерфейсом помечаются эксепшены, которые необходимо логировать в любом случае: неважно, обработаны они или нет.
OutableInterface - этот интерфейс помечает эксепшены, текст которых можно выдавать пользователю: далеко не каждый эксепшн можно вывести пользователю.
Я не понимаю, какой должна быть иерархия наследования
Exception классов? Каким образом нужно связать Monolog (или любую другую систему логирования) с классами исключений ?
Может нужно использовать
Monolog\ErrorHandler ? (но я не знаю как) ..
Подскажите пожалуйста, где я могу посмотреть примеры? Или где почитать об этом подробнее?
Я хотел бы понять, как это работает. И посмотрите примеры правильной работы с исключениями и логами.
Можно даже примеры на GitHub))
Буду благодарен за любую помощь.