Logging With PHP - Artificial Intelligence
(Page 7 of 9 )
You can also configure PHP to automatically log all script errors to a specific file via the special "log_errors" configuration directive in "php.ini". This directive, when set to true, logs all PHP errors to either a user-specified log file (the value of this file must be specified in the "error_log" configuration directive, also set via "php.ini"), or to the Web server error log if no log file is specified.
Consider the following example, which demonstrates:
<?php
// turn on automatic error logging
ini_set('log_errors', true);
// include non-existent file
include("non.existent.file.php");
?>
In this case, I'm manually instantiating an error by
attempting to include a file which does not exist. Obviously, PHP will barf and display an error screen containing the following:
Warning: Failed opening 'non.existent.file.php' for inclusion
(include_path='.;/usr/local/php/includes') in error.php on line 10
The same error also appears in the server's error log:
[Tue Nov 26 12:49:31 2002] [error] PHP Warning: Failed opening
'non.existent.file.php' for inclusion
(include_path='.;/usr/local/php/includes') in error.php on line 10
You can turn off PHP error display, and only have the error
message appear in the log file, by setting the "display_errors" variable (also accessible via "php.ini") to false. Consider the following variant of the previous example, which demonstrates:
<?php
// turn on automatic error logging
ini_set('log_errors', true);
// turn off error display
ini_set('display_errors', false);
// include non-existent file
include("non.existent.file.php");
?>
In this case, though an error takes place, it is never
displayed to the user, but merely gets logged to the server's error log.
On *NIX systems, setting the "error_log" variable to the special value "syslog" logs all errors via the standard "syslog" daemon.
Next: Big Brother Is Watching >>
More PHP Articles
More By icarus, (c) Melonfire