Ich möchte eine Fehlerprotokollierung in PHP CodeIgniter. Wie aktiviere ich die Fehlerprotokollierung?
Ich habe ein paar Fragen:
CodeIgniter verfügt über einige integrierte Fehlerprotokollierungsfunktionen.
$config['log_threshold'] = 1;
log_message('error', 'Some variable did not contain a value.');
log_exceptions()
der Klasse CI_Exceptions erweitern. Sie können dies selbst tun oder this verwenden. Weitere Informationen zur Erweiterung des Kerns hierSiehe http://www.codeigniter.com/user_guide/general/errors.html
Um einfach eine Zeile in das Fehlerprotokoll des Servers zu schreiben, verwenden Sie die Funktion error_log () von PHP. Diese Methode sendet jedoch keine E-Mail.
Erstens, um einen Fehler auszulösen:
trigger_error("Error message here", E_USER_ERROR);
Standardmäßig wird dies in die Fehlerprotokolldatei des Servers aufgenommen. Siehe die ErrorLog-Direktive für Apache. So legen Sie Ihre eigene Protokolldatei fest:
ini_set('error_log', 'path/to/log/file');
Beachten Sie, dass die von Ihnen gewählte Protokolldatei bereits vorhanden sein muss und vom Serverprozess beschreibbar sein muss. Die einfachste Möglichkeit, die Datei beschreibbar zu machen, besteht darin, den Serverbenutzer zum Eigentümer der Datei zu machen. (Der Serverbenutzer kann je nach Betriebssystemverteilung Niemand, _www, Apache oder etwas anderes sein.)
Um den Fehler per E-Mail zu versenden, müssen Sie einen benutzerdefinierten Fehlerhandler einrichten:
function mail_error($errno, $errstr, $errfile, $errline) {
$message = "[Error $errno] $errstr - Error on line $errline in file $errfile";
error_log($message); // writes the error to the log file
mail('[email protected]', 'I have an error', $message);
}
set_error_handler('mail_error', E_ALL^E_NOTICE);
Weitere Informationen finden Sie in der Dokumentation zu relevant PHP .
Stellen Sie außerdem sicher, dass Sie Codeigniter zum Protokollieren des Nachrichtentyps zugelassen haben, den Sie in einer Konfigurationsdatei angeben möchten.
das heißt $config['log_threshold'] = [log_level ranges 0-4];
Weitere Informationen zu Frage 4 Wie wird dieser Fehler per E-Mail an eine E-Mail-Adresse gesendet?. Die Funktion error_log hat auch ein E-Mail-Ziel . http://php.net/manual/de/function. error-log.php
Agha, hier habe ich ein Beispiel gefunden, das eine Verwendung zeigt . Fehlermeldung über E-Mail senden mit error_log ()
error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);