0
Ich möchte alle Fehler oder Ausnahmen in CakePHP 3 mailen. Welche der Lösungen sind richtig?Wie kann ich alle Ausnahmen mailen?
- schreiben neue Protokoll Motor
- Handler neue Fehler schreiben
Ich möchte alle Fehler oder Ausnahmen in CakePHP 3 mailen. Welche der Lösungen sind richtig?Wie kann ich alle Ausnahmen mailen?
ich benutzerdefinierte Fehlerhandler geschrieben und es registrieren.
// In config/bootstrap.php
namespace App\Error;
use Cake\Error\ErrorHandler;
use Cake\Mailer\Email;
/**
* AppError
*
* @package App\Error
*/
class AppError extends ErrorHandler
{
/**
* {@inheritdoc}
*/
protected function _displayException($exception)
{
parent::_displayException($exception);
try {
$email = new Email('default');
$email->to('[email protected]')
->emailFormat(Email::MESSAGE_HTML)
->subject('Bug !!!')
->template('bug')
->set(['exception' => $exception])
->send();
} catch (Exception $e) {
// Disable trace for internal errors.
$this->_options['trace'] = false;
$message = sprintf(
"[%s] %s\n%s", // Keeping same message format
get_class($e),
$e->getMessage(),
$e->getTraceAsString()
);
trigger_error($message, E_USER_ERROR);
}
}
}
Und erstellen "Bug" Vorlage:
// In src/Template/Email/html/bug.ctp
<h1><?= $exception->getMessage() ?></h1>
<p>
<?= nl2br($exception->getTraceAsString()) ?>
</p>
einen Fehlerhandler schreiben. – burzum
@burzum Kann ich mehr als einen ErrorHandler registrieren? – atkrad