source: trunk/src/inc/ErrorHandler.php@ 7749

Last change on this file since 7749 was 7725, checked in by rick, 15 years ago

Made sure the the line style is set to be OS friendly

  • Property svn:eol-style set to native
File size: 4.2 KB
Line 
1<?php
2/*
3 * Project: NodeMap2.0
4 * File: ErrorHandler.class.php
5 * Purpose: Handling (PHP) errors generated by the application
6 */
7
8/*
9 * PHP errors:
10 * E_ERROR ( integer ) Fatal run-time errors. These indicate errors that can not be recovered from, such as a memory allocation problem. Execution of the script is halted.
11 * E_WARNING ( integer ) Run-time warnings (non-fatal errors). Execution of the script is not halted.
12 * E_PARSE ( integer ) Compile-time parse errors. Parse errors should only be generated by the parser.
13 * E_NOTICE ( integer ) Run-time notices. Indicate that the script encountered something that could indicate an error, but could also happen in the normal course of running a script.
14 * E_CORE_ERROR ( integer ) Fatal errors that occur during PHP's initial startup. This is like an E_ERROR, except it is generated by the core of PHP. since PHP 4
15 * E_CORE_WARNING ( integer ) Warnings (non-fatal errors) that occur during PHP's initial startup. This is like an E_WARNING, except it is generated by the core of PHP. since PHP 4
16 * E_COMPILE_ERROR ( integer ) Fatal compile-time errors. This is like an E_ERROR, except it is generated by the Zend Scripting Engine. since PHP 4
17 * E_COMPILE_WARNING ( integer ) Compile-time warnings (non-fatal errors). This is like an E_WARNING, except it is generated by the Zend Scripting Engine. since PHP 4
18 * E_USER_ERROR ( integer ) User-generated error message. This is like an E_ERROR, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
19 * E_USER_WARNING ( integer ) User-generated warning message. This is like an E_WARNING, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
20 * E_USER_NOTICE ( integer ) User-generated notice message. This is like an E_NOTICE, except it is generated in PHP code by using the PHP function trigger_error(). since PHP 4
21 * E_STRICT ( integer ) Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code. since PHP 5
22 * E_RECOVERABLE_ERROR ( integer ) Catchable fatal error. It indicates that a probably dangerous error occured, but did not leave the Engine in an unstable state. If the error is not caught by a user defined handle (see also set_error_handler()), the application aborts as it was an E_ERROR. since PHP 5.2.0
23 * E_ALL ( integer ) All errors and warnings, as supported, except of level E_STRICT in PHP < 6.
24 */
25
26/*
27 * Function: NodeErrorHandler
28 * Description: Handling with errors, decides what log level it is and send it to LogHandler
29 * Parameters: int $errno, string $errstr, string $errfile, int $errline, array $errcontext
30 * Returns: true (Just so the internal PHP error handler is nog executed)
31 */
32function NodeErrorHandler(int $errno, string $errstr, string $errfile, int $errline, array $errcontext) {
33 switch ($errno) {
34 case E_ERROR:
35 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
36 break;
37 case E_WARNING:
38 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
39 break;
40 case E_PARSE:
41 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
42 break;
43 case E_NOTICE:
44 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
45 break;
46 case E_CORE_ERROR:
47 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
48 break;
49 case E_CORE_WARNING:
50 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
51 break;
52 case E_COMPILE_ERROR:
53 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
54 break;
55 case E_COMPILE_WARNING:
56 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
57 break;
58 case E_USER_ERROR:
59 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
60 break;
61 case E_USER_WARNING:
62 trigger_log(SYSLOG_WARNING, $errstr, $errfile, $errline);
63 break;
64 case E_USER_NOTICE:
65 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
66 break;
67 case E_STRICT:
68 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
69 break;
70 case E_RECOVERABLE_ERROR:
71 trigger_log(SYSLOG_ERR, $errstr, $errfile, $errline);
72 break;
73 default:
74 trigger_log(SYSLOG_NOTICE, $errstr, $errfile, $errline);
75 break;
76 }
77
78 /* Don't execute PHP internal error handler */
79 return true;
80}
81
82set_exception_handler('NodeErrorHandler');
Note: See TracBrowser for help on using the repository browser.