| <?php | |
| function errorHandler( $errorLevel, $message, $sourceFile, $lineNumber ) { | |
| $logFile = getLogFile(); | |
| $logInfo = "----------\n" | |
| . "Error level: $errorLevel\n" | |
| . "Message: $message\n" | |
| . "In file: $sourceFile\n" | |
| . "In line: $lineNumber\n" | |
| . "----------\n\n"; | |
| $logFile -> flock( LOCK_EX ); | |
| $logFile -> fwrite( $logInfo ); | |
| $logFile -> flock( LOCK_UN ); | |
| return false; //returns false, so PHP continues with it's internal error handling | |
| } | |
| function exceptionHandler( $exception ) { | |
| $logFile = getLogFile(); | |
| $logInfo = "----------\n" | |
| . "Uncaught exception: {$exception -> getMessage()}\n" | |
| . "In file: {$exception -> getFile()}\n" | |
| . "In line: {$exception -> getLine()}\n" | |
| . "----------\n\n"; | |
| $logFile -> flock( LOCK_EX ); | |
| $logFile -> fwrite( $logInfo ); | |
| $logFile -> flock( LOCK_UN ); | |
| } | |
| function getLogFile() { | |
| if( !file_exists( '/tmp/rap-php.log' ) ) { | |
| $handle = fopen( '/tmp/rap-php.log', 'w' ); | |
| fclose( $handle ); | |
| } | |
| return new SplFileObject( '/tmp/rap-php.log', 'a' ); | |
| } | |
| set_error_handler( 'errorHandler' ); | |
| set_exception_handler( 'exceptionHandler' ); | |
| ?> |