Re: debugging

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 19/01/2005, at 5:36 PM, William Stokes wrote:

I would like to add some debugging/info code to my pages. In test
environment of course. Any ideas how to do this? I mean for example to print
to a web page the line number when the script fails or something like that.
It's a pain on the **s to hunt typo's by just reading the source over and
over again.

William,

I start by trying to programatically find out if I'm in a development or production environment and setting a constant DEV to true or false. For me, I development things on my desktop Mac, so the server and client are the same machine, and share the same IP address. So my check for DEV is if the client IP and server IP match.

<? define('DEV',($_SERVER['REMOTE_ADDR']==$_SERVER['SERVER_ADDR'])); ?>

So, this then gives a constant DEV to test to decide if I'm in the development or production environment, eg:

Next, I set-up PHP's built-in error reporting for both environments:

<?
if(DEV)
	{
	ini_set("error_reporting",E_ALL);
	ini_set("display_errors",1);
	ini_set("log_errors",0);
	}
else
	{
	ini_set("error_reporting",E_ALL ^ E_NOTICE);
	ini_set("display_errors",0);
	ini_set("log_errors",1);
	}
?>

In short, this logs most errors in production (not notices), and dumps them to the screen if we're in development. You'll already see that you get quite a lot of information from the errors (line numbers, reason for the error, etc), and I think this is what you're looking for.

But so far this only caters to PHP errors triggered by built-in functions and source. Smarter programmers will build in their own debugging lines, custom errors and notices to make the tracking down of bugs and quirks much much easier. For this, you can use trigger_error() <http://au2.php.net/trigger_error>.


That should be more than enough for the average PHP hack, but there is of course the option to write your own custom error handler to customise the look and feel of the error messages, send emails, log things to a database, etc.


It's all pretty powerful stuff, so read up!


--- Justin French, Indent.com.au justin.french@xxxxxxxxxxxxx Web Application Development & Graphic Design

--
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux