CodeIgniter - Error Handling

Many times, while using application, we come across errors. It is very annoying for the users if the errors are not handled properly. CodeIgniter provides an easy error handling mechanism.
You would like the messages to be displayed, when the application is in developing mode rather than in production mode as the error messages can be solved easily at the developing stage.
The environment of your application can be changed, by changing the line given below from index.php file. This can be set to anything but normally there are three values (development, test, production) used for this purpose.
define('ENVIRONMENT', isset($_SERVER['CI_ENV']) ? $_SERVER['CI_ENV'] : 'development');

Different environment will require different levels of error reporting. By default, development mode will display errors and testing and live mode will hide them. CodeIgniter provides three functions as shown below to handle errors.
show_error() function displays errors in HTML format at the top of the screen.
show_error() function displays errors in HTML format at the top of the screen.
Syntax
Parameters
$message (mixed) − Error message
$message (mixed) − Error message
$status_code (int) − HTTP Response status code
$status_code (int) − HTTP Response status code
$heading (string) − Error page heading
$heading (string) − Error page heading
Return Type
show_404() function displays error if you are trying to access a page which does not exist.
show_404() function displays error if you are trying to access a page which does not exist.
Syntax
Parameters
$page (string) – URI string
$page (string) – URI string
$log_error (bool) – Whether to log the error
$log_error (bool) – Whether to log the error
Return Type
log_message() function is used to write log messages. This is useful when you want to write custom messages.
log_message() function is used to write log messages. This is useful when you want to write custom messages.
Syntax
Parameters
$level (string) − Log level: ‘error’, ‘debug’ or ‘info’
$level (string) − Log level: ‘error’, ‘debug’ or ‘info’
$message (string) − Message to log
$message (string) − Message to log
$php_error (bool) − Whether we’re logging a native PHP error message
$php_error (bool) − Whether we’re logging a native PHP error message
Return Type
Logging can be enabled in application/config/config.php file. Given below is the screenshot of config.php file, where you can set threshold value.
/*
|--------------------------------------------------------------------------------
|   Error Logging Threshold
|--------------------------------------------------------------------------------
| You can enable error logging by setting a threshold over zero. The 
| threshold determines what gets logged. Threshold options are:
|
|   0 = Disable logging, Error logging TURNED OFF
|   1 = Error Message (including PHP errors)
|   2 = Debug Message
|   3 = Informational Messages
|   4 = All Messages
|
| You can also pass an array with threshold levels to show individual error types
|
|   array(2) = Debug Message, without Error Messages
| For a live site you'll usually only enable Errors (1) to be logged otherwise 
| your log files will fill up very fast.
|
*/
$config['log_threshold'] = 0;
You can find the log messages in application/log/. Make sure that this directory is writable before you enable log files.
Various templates for error messages can be found in application/views/errors/cli or application/views/errors/html.
 Print
 Add Notes
 Bookmark this page