note 118630 added to function.set-error-handler

From: Date: Tue, 12 Jan 2016 07:36:57 +0000
Subject: note 118630 added to function.set-error-handler
Groups: php.notes 
Request: Send a blank email to php-notes+get-204645@lists.php.net to get a copy of this message
<?php /** * Used for logging all php notices,warings and etc in a file when error reporting * is set and display_errors is off * @uses used in prod env for logging all type of error of php code in a file for further debugging * and code performance * @author Aditya Mehrotra<aditycse@gmail.com> */ error_reporting(E_ALL); ini_set("display_errors", "off"); define('ERROR_LOG_FILE', '/var/www/error.log'); /** * Custom error handler * @param integer $code * @param string $description * @param string $file * @param interger $line * @param mixed $context * @return boolean */ function handleError($code, $description, $file = null, $line = null, $context = null) { $displayErrors = ini_get("display_errors"); $displayErrors = strtolower($displayErrors); if (error_reporting() === 0 || $displayErrors === "on") { return false; } list($error, $log) = mapErrorCode($code); $data = array( 'level' => $log, 'code' => $code, 'error' => $error, 'description' => $description, 'file' => $file, 'line' => $line, 'context' => $context, 'path' => $file, 'message' => $error . ' (' . $code . '): ' . $description . ' in [' . $file . ', line ' . $line . ']' ); return fileLog($data); } /** * This method is used to write data in file * @param mixed $logData * @param string $fileName * @return boolean */ function fileLog($logData, $fileName = ERROR_LOG_FILE) { $fh = fopen($fileName, 'a+'); if (is_array($logData)) { $logData = print_r($logData, 1); } $status = fwrite($fh, $logData); fclose($fh); return ($status) ? true : false; } /** * Map an error code into an Error word, and log location. * * @param int $code Error code to map * @return array Array of error word, and log location. */ function mapErrorCode($code) { $error = $log = null; switch ($code) { case E_PARSE: case E_ERROR: case E_CORE_ERROR: case E_COMPILE_ERROR: case E_USER_ERROR: $error = 'Fatal Error'; $log = LOG_ERR; break; case E_WARNING: case E_USER_WARNING: case E_COMPILE_WARNING: case E_RECOVERABLE_ERROR: $error = 'Warning'; $log = LOG_WARNING; break; case E_NOTICE: case E_USER_NOTICE: $error = 'Notice'; $log = LOG_NOTICE; break; case E_STRICT: $error = 'Strict'; $log = LOG_NOTICE; break; case E_DEPRECATED: case E_USER_DEPRECATED: $error = 'Deprecated'; $log = LOG_NOTICE; break; default : break; } return array($error, $log); } //calling custom error handler set_error_handler("handleError"); print_r($arra); //undefined variable print_r($dssdfdfgg); //undefined variable include_once 'file.php'; //No such file or directory ?> ---- Server IP: 72.52.91.14 Probable Submitter: 14.141.55.102 ---- Manual Page -- http://php.net/manual/en/function.set-error-handler.php Edit -- https://master.php.net/note/edit/118630 Del: integrated -- https://master.php.net/note/delete/118630/integrated Del: useless -- https://master.php.net/note/delete/118630/useless Del: bad code -- https://master.php.net/note/delete/118630/bad+code Del: spam -- https://master.php.net/note/delete/118630/spam Del: non-english -- https://master.php.net/note/delete/118630/non-english Del: in docs -- https://master.php.net/note/delete/118630/in+docs Del: other reasons-- https://master.php.net/note/delete/118630 Reject -- https://master.php.net/note/reject/118630 Search -- https://master.php.net/manage/user-notes.php

« previous php.notes (#204645) next »