blob: d6bed9ea1032a27f55569af850774bb9dca43ffc [file] [log] [blame]
Derek Allard2067d1a2008-11-13 22:59:24 +00001<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
2<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
3<head>
4
5<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
6<title>Error Handling : CodeIgniter User Guide</title>
7
8<style type='text/css' media='all'>@import url('../userguide.css');</style>
9<link rel='stylesheet' type='text/css' media='all' href='../userguide.css' />
10
11<script type="text/javascript" src="../nav/nav.js"></script>
12<script type="text/javascript" src="../nav/prototype.lite.js"></script>
13<script type="text/javascript" src="../nav/moo.fx.js"></script>
14<script type="text/javascript" src="../nav/user_guide_menu.js"></script>
15
16<meta http-equiv='expires' content='-1' />
17<meta http-equiv= 'pragma' content='no-cache' />
18<meta name='robots' content='all' />
19<meta name='author' content='ExpressionEngine Dev Team' />
20<meta name='description' content='CodeIgniter User Guide' />
21
22</head>
23<body>
24
25<!-- START NAVIGATION -->
26<div id="nav"><div id="nav_inner"><script type="text/javascript">create_menu('../');</script></div></div>
27<div id="nav2"><a name="top"></a><a href="javascript:void(0);" onclick="myHeight.toggle();"><img src="../images/nav_toggle_darker.jpg" width="154" height="43" border="0" title="Toggle Table of Contents" alt="Toggle Table of Contents" /></a></div>
28<div id="masthead">
29<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
30<tr>
Phil Sturgeon9c63d0b2011-10-27 01:55:44 +010031<td><h1>CodeIgniter User Guide Version 2.1.0</h1></td>
Derek Allard2067d1a2008-11-13 22:59:24 +000032<td id="breadcrumb_right"><a href="../toc.html">Table of Contents Page</a></td>
33</tr>
34</table>
35</div>
36<!-- END NAVIGATION -->
37
38
39<!-- START BREADCRUMB -->
40<table cellpadding="0" cellspacing="0" border="0" style="width:100%">
41<tr>
42<td id="breadcrumb">
43<a href="http://codeigniter.com/">CodeIgniter Home</a> &nbsp;&#8250;&nbsp;
44<a href="../index.html">User Guide Home</a> &nbsp;&#8250;&nbsp;
45Error Handling
46</td>
47<td id="searchbox"><form method="get" action="http://www.google.com/search"><input type="hidden" name="as_sitesearch" id="as_sitesearch" value="codeigniter.com/user_guide/" />Search User Guide&nbsp; <input type="text" class="input" style="width:200px;" name="q" id="q" size="31" maxlength="255" value="" />&nbsp;<input type="submit" class="submit" name="sa" value="Go" /></form></td>
48</tr>
49</table>
50<!-- END BREADCRUMB -->
51
52<br clear="all" />
53
54
55<!-- START CONTENT -->
56<div id="content">
57
58<h1>Error Handling</h1>
59
60<p>CodeIgniter lets you build error reporting into your applications using the functions described below.
61In addition, it has an error logging class that permits error and debugging messages to be saved as text files.</p>
62
Derek Jones4b9c6292011-07-01 17:40:48 -050063<p class="important"><strong>Note:</strong> By default, CodeIgniter displays all PHP errors. You might
64wish to change this behavior once your development is complete. You'll find the <dfn>error_reporting()</dfn>
Derek Allard2067d1a2008-11-13 22:59:24 +000065function located at the top of your main index.php file. Disabling error reporting will NOT prevent log files
66from being written if there are errors.</p>
67
68<p>Unlike most systems in CodeIgniter, the error functions are simple procedural interfaces that are available
Derek Jones4b9c6292011-07-01 17:40:48 -050069globally throughout the application. This approach permits error messages to get triggered without having to worry
Derek Allard2067d1a2008-11-13 22:59:24 +000070about class/function scoping.</p>
71
72<p>The following functions let you generate errors:</p>
73
Derek Jones817163a2009-07-11 17:05:58 +000074<h2>show_error('<var>message</var>' [, int <var>$status_code</var>= 500 ] )</h2>
Derek Allard2067d1a2008-11-13 22:59:24 +000075<p>This function will display the error message supplied to it using the following error template:</p>
76<p><dfn>application/errors/</dfn><kbd>error_general.php</kbd></p>
Derek Jones817163a2009-07-11 17:05:58 +000077<p>The optional parameter $status_code determines what HTTP status code should be sent with the error.</p>
Derek Allard2067d1a2008-11-13 22:59:24 +000078
Derek Allard2ddc9492010-08-05 10:08:33 -040079<h2>show_404('<var>page</var>' [, '<var>log_error</var>'])</h2>
Derek Allard2067d1a2008-11-13 22:59:24 +000080<p>This function will display the 404 error message supplied to it using the following error template:</p>
81<p><dfn>application/errors/</dfn><kbd>error_404.php</kbd></p>
82
83<p>The function expects the string passed to it to be the file path to the page that isn't found.
84Note that CodeIgniter automatically shows 404 messages if controllers are not found.</p>
85
Derek Allard2ddc9492010-08-05 10:08:33 -040086<p>CodeIgniter automatically logs any show_404() calls. Setting the optional second parameter to FALSE will skip logging.</p>
87
Derek Allard2067d1a2008-11-13 22:59:24 +000088
89<h2>log_message('<var>level</var>', '<samp>message</samp>')</h2>
90
Derek Jones4b9c6292011-07-01 17:40:48 -050091<p>This function lets you write messages to your log files. You must supply one of three "levels"
Derek Allard2067d1a2008-11-13 22:59:24 +000092in the first parameter, indicating what type of message it is (debug, error, info), with the message
Derek Jones4b9c6292011-07-01 17:40:48 -050093itself in the second parameter. Example:</p>
Derek Allard2067d1a2008-11-13 22:59:24 +000094
95<code>
96if ($some_var == "")<br />
97{<br />
98&nbsp;&nbsp;&nbsp;&nbsp;log_message('error', 'Some variable did not contain a value.');<br />
99}<br />
100else<br />
101{<br />
102&nbsp;&nbsp;&nbsp;&nbsp;log_message('debug', 'Some variable was correctly set');<br />
103}<br />
104<br />
105log_message('info', 'The purpose of some variable is to provide some value.');<br />
106</code>
107
108<p>There are three message types:</p>
109
110<ol>
Derek Jones4b9c6292011-07-01 17:40:48 -0500111<li>Error Messages. These are actual errors, such as PHP errors or user errors.</li>
112<li>Debug Messages. These are messages that assist in debugging. For example, if a class has been initialized, you could log this as debugging info.</li>
113<li>Informational Messages. These are the lowest priority messages, simply giving information regarding some process. CodeIgniter doesn't natively generate any info messages but you may want to in your application.</li>
Derek Allard2067d1a2008-11-13 22:59:24 +0000114</ol>
115
116
117<p class="important"><strong>Note:</strong> In order for the log file to actually be written, the
Derek Jones4b9c6292011-07-01 17:40:48 -0500118 "logs" folder must be writable. In addition, you must set the "threshold" for logging in <dfn>application/config/config.php</dfn>.
Derek Allard2067d1a2008-11-13 22:59:24 +0000119You might, for example, only want error messages to be logged, and not the other two types.
120If you set it to zero logging will be disabled.</p>
121
122
123
124</div>
125<!-- END CONTENT -->
126
127
128<div id="footer">
129<p>
130Previous Topic:&nbsp;&nbsp;<a href="routing.html">URI Routing</a>
131&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
132<a href="#top">Top of Page</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
133<a href="../index.html">User Guide Home</a>&nbsp;&nbsp;&nbsp;&middot;&nbsp;&nbsp;
134Next Topic:&nbsp;&nbsp;<a href="caching.html">Page Caching</a>
135</p>
Derek Jones898949f2011-01-28 07:42:16 -0600136<p><a href="http://codeigniter.com">CodeIgniter</a> &nbsp;&middot;&nbsp; Copyright &#169; 2006 - 2011 &nbsp;&middot;&nbsp; <a href="http://ellislab.com/">EllisLab, Inc.</a></p>
Derek Allard2067d1a2008-11-13 22:59:24 +0000137</div>
138
139</body>
adminb0dd10f2006-08-25 17:25:49 +0000140</html>