PHP CodeIgniterでエラーログを記録します。エラーログを有効にするにはどうすればよいですか?
いくつか質問があります。
CodeIgniterには、いくつかのエラーログ機能が組み込まれています。
$config['log_threshold'] = 1;
log_message('error', 'Some variable did not contain a value.');
を使用log_exceptions()
を拡張する必要があります。これを自分で行うか、 this を使用できます。コアの拡張に関する詳細情報 こちらhttp://www.codeigniter.com/user_guide/general/errors.html を参照してください
サーバーのエラーログに単純に行を追加するには、PHPのerror_log()関数を使用します。ただし、そのメソッドは電子メールを送信しません。
まず、エラーをトリガーするには:
trigger_error("Error message here", E_USER_ERROR);
デフォルトでは、これはサーバーのエラーログファイルに記録されます。 Apacheの ErrorLogディレクティブ を参照してください。独自のログファイルを設定するには:
ini_set('error_log', 'path/to/log/file');
選択するログファイルはすでに存在し、サーバープロセスによって書き込み可能である必要があります。ファイルを書き込み可能にする最も簡単な方法は、サーバーユーザーをファイルの所有者にすることです。 (サーバーのユーザーは、OSディストリビューションに応じて、nobody、_www、Apacheなどです。)
エラーを電子メールで送信するには、カスタムエラーハンドラを設定する必要があります。
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);
詳細については、 関連PHPドキュメント を参照してください。
また、codeigniterが必要なメッセージのタイプを構成ファイルに記録できるようにしてください。
すなわち$config['log_threshold'] = [log_level ranges 0-4];
質問パート4についての詳細は、そのエラーを電子メールアドレスにどのように送信しますかerror_log関数には電子メールの宛先もあります。 http://php.net/manual/en/function.error-log.php
アガ、ここで使用法を示す例を見つけました。 error_log()を使用して電子メールでエラーメッセージを送信
error_log($this->_errorMsg, 1, ADMIN_MAIL, "Content-Type: text/html; charset=utf8\r\nFrom: ".MAIL_ERR_FROM."\r\nTo: ".ADMIN_MAIL);