CodeIgniter lets you build error reporting into your applications using the functions described below. In addition, it has an error logging class that permits error and debugging messages to be saved as text files.
Note
By default, CodeIgniter displays all PHP errors. You might wish to change this behavior once your development is complete. You’ll find the error_reporting() function located at the top of your main index.php file. Disabling error reporting will NOT prevent log files from being written if there are errors.
Unlike most systems in CodeIgniter, the error functions are simple procedural interfaces that are available globally throughout the application. This approach permits error messages to get triggered without having to worry about class/function scoping.
CodeIgniter also returns a status code whenever a portion of the core calls exit()
. This exit status code is separate from the HTTP status code, and serves as a notice to other processes that may be watching of whether the script completed successfully, or if not, what kind of problem it encountered that caused it to abort. These values are defined in application/config/constants.php. While exit status codes are most useful in CLI settings, returning the proper code helps server software keep track of your scripts and the health of your application.
The following functions let you generate errors:
show_error($message, $status_code, $heading = 'An Error Was Encountered')
Parameters: |
|
---|---|
Return type: |
void |
This function will display the error message supplied to it using the error template appropriate to your execution:
application/views/errors/html/error_general.php
or:
application/views/errors/cli/error_general.phpThe optional parameter $status_code
determines what HTTP status code should be sent with the error. If $status_code
is less than 100, the HTTP status code will be set to 500, and the exit status code will be set to $status_code + EXIT__AUTO_MIN
. If that value is larger than EXIT__AUTO_MAX
, or if $status_code
is 100 or higher, the exit status code will be set to EXIT_ERROR
. You can check in application/config/constants.php for more detail.
show_404($page = '', $log_error = TRUE)
Parameters: |
|
---|---|
Return type: |
void |
This function will display the 404 error message supplied to it using the error template appropriate to your execution:
application/views/errors/html/error_404.php
or:
application/views/errors/cli/error_404.phpThe function expects the string passed to it to be the file path to the page that isn’t found. The exit status code will be set to EXIT_UNKNOWN_FILE
. Note that CodeIgniter automatically shows 404 messages if controllers are not found.
CodeIgniter automatically logs any show_404()
calls. Setting the optional second parameter to FALSE will skip logging.
log_message($level, $message)
Parameters: |
|
---|---|
Return type: |
void |
This function lets you write messages to your log files. You must supply one of three “levels” in the first parameter, indicating what type of message it is (debug, error, info), with the message itself in the second parameter.
Example:
if ($some_var == '') { log_message('error', 'Some variable did not contain a value.'); } else { log_message('debug', 'Some variable was correctly set'); } log_message('info', 'The purpose of some variable is to provide some value.');
There are three message types:
Note
In order for the log file to actually be written, the logs/ directory must be writable. In addition, you must set the “threshold” for logging in application/config/config.php. You might, for example, only want error messages to be logged, and not the other two types. If you set it to zero logging will be disabled.
© 2014–2018 British Columbia Institute of Technology
Licensed under the MIT License.
https://www.codeigniter.com/user_guide/general/errors.html