Отправьте электронное письмо, если в CakePHP произойдет какая-либо ошибка - PullRequest
2 голосов
/ 15 сентября 2010

Я использую CakePHP в разработке PHP. Я установил мой режим отладки на 0 в файле core.php.

Configure::write('debug', 1);

Этот параметр не будет отображать ошибки на сайте. Таким образом, пользователь / разработчик не сможет увидеть ошибки. Именно поэтому я хочу сделать что-то, что отправит мне электронное письмо с названием ошибки и кодом ошибки, например, «Предупреждающее сообщение», уведомление (8): например, сообщения об ошибках Чтобы в случае ошибки она не игнорировалась.

Спасибо.

Ответы [ 3 ]

3 голосов
/ 15 сентября 2010

Если вы получаете электронное письмо каждый раз, когда возникает ошибка, вы будете залиты, пока ошибка не будет исправлена, что, вероятно, не очень эффективно или продуктивно.

Вы можете написать систему электронной почты с сообщениями об ошибках с управлением газом, где, как только каждая ошибка возникает из CakePHP, она помещается в базу данных (возможно, с ключом md5 (errortext)) и немедленно отправляется по электронной почте всем, кто заинтересован. Затем, в следующий раз, когда возникнет точно такая же ошибка, система увидит, что она уже есть в базе данных (та же самая md5), и больше не отправит ее по электронной почте.

Кроме того, нельзя ли настроить CakePHP для регистрации ошибок в файле журнала? Затем вы можете проверить это на наличие ошибок вручную или с помощью чего-то вроде logcheck , которое будет выполняться по частому расписанию, проверить файл журнала CakePHP на наличие конкретных ошибок и отправить сводную информацию по электронной почте, если обнаружатся какие-либо новые.

0 голосов
/ 16 ноября 2010

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

Подробности на https://sourceforge.net/news/?group_id=317819&id=293422, а упомянутая версия 0.1.7 должна выйти через пару дней.

Трекер с открытым исходным кодом находится на http://elastik.sourceforge.net/

Любые отзывы приветствуются, спасибо

0 голосов
/ 15 сентября 2010

Я думаю, что вы могли бы достичь этой цели, переопределив обработчик ошибок PHP по умолчанию.Соответствующая страница справочника PHP: http://php.net/manual/en/function.set-error-handler.php

По сути, вы просто определите функцию (и прикажете своему сценарию вызвать эту функцию при ошибке).Ваше определение должно надлежащим образом возвращать false или die () при ошибке (в противном случае скрипт продолжит выполняться).Однако в этой функции вы сможете совершать вызов для отправки электронных писем.

Обратите внимание, что если вы делаете это в CakePHP, вам может потребоваться передать текущий объект в качестве параметра, в противном случае это может быть ошибкой.определяемый вами обработчик не будет хорошо привязываться к остальным объектам тортов.

...