{"id":373,"date":"2013-06-27T17:24:13","date_gmt":"2013-06-27T17:24:13","guid":{"rendered":"http:\/\/www.siriinnovations.com\/blog\/?p=373"},"modified":"2014-07-17T03:32:27","modified_gmt":"2014-07-17T03:32:27","slug":"php-error-handling-logging","status":"publish","type":"post","link":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/","title":{"rendered":"PHP Error Handling and Logging"},"content":{"rendered":"<p><b>Introduction:<\/b><\/p>\n<p>One of the features of PHP is its comprehensive error-handling functionality. These functions which are a part of PHP core, allow you to define your own error handling rules as well as modify the way the errors can be logged.<\/p>\n<p>The error reporting functions allow you to customize what level and kind of error feedback is given, ranging from simple notices to customized functions returned during errors.<\/p>\n<p>Logging functions allow you to send messages directly to other machines, to an email, to system logs, etc.<\/p>\n<p><b>Configuration:<\/b><\/p>\n<p>The behaviour of these functions are affected by settings in\u00a0<i>php.ini<\/i>.<\/p>\n<p><code>1.<i> <\/i><\/code><code>error_reporting integer<\/code><code>: Set the error reporting level. The parameter is either an integer representing a bit field, or named constants. The error_reporting levels and constants are described in Predefined Constants, and in php.ini. To set at runtime, use the error_reporting() function.<\/code><\/p>\n<p><code>2. <\/code><code>display_errors string<\/code><code> : This determines whether errors should be printed to the screen as part of the output or if they should be hidden from the user.Value \"stderr\" sends the errors to stderr instead of stdout.<\/code><\/p>\n<p><code>3. <\/code><code>display_startup_errors boolean<\/code><code> : Even when display_errors is on, errors that occur during PHP's startup sequence are not displayed. It's strongly recommended to keep display_startup_errors off, except for debugging.<\/code><\/p>\n<p><code>4. <\/code><code>log_errors boolean<\/code><code> : Tells whether script error messages should be logged to the server's error log or error log. <\/code><\/p>\n<p><code>5. <\/code><code>log_errors_max_len integer<\/code><code> : Set the maximum length of log_errors in bytes. In error_log information about the source is added. The default is 1024 and 0 allows to not apply any maximum length at all. This length is applied to logged errors, displayed errors and also to $php_errormsg.<\/code><\/p>\n<p><code>6. <\/code><code>ignore_repeated_errors boolean<\/code><code> : Do not log repeated messages. Repeated errors must occur in the same file on the same line unless ignore_repeated_source is set true.<\/code><\/p>\n<p><code>7. <\/code><code>ignore_repeated_source boolean<\/code><code> : Ignore source of message when ignoring repeated messages. When this setting is On you will not log errors with repeated messages from different files or sourcelines.<\/code><\/p>\n<p><code>8. <\/code><code>report_memleaks boolean<\/code><code> : If this parameter is set to On (the default), this parameter will show a report of memory leaks detected by the Zend memory manager. This report will be send to stderr on Posix platforms. On Windows, it will be send to the debugger using OutputDebugString(), and can be viewed with tools like \u00bb DbgView. This parameter only has effect in a debug build, and if error_reporting includes E_WARNING in the allowed list.<\/code><\/p>\n<p><code>9. <\/code><code>track_errors boolean<\/code><code> : If enabled, the last error message will always be present in the variable $php_errormsg.<\/code><\/p>\n<p><code>10. <\/code><code>html_errors boolean<\/code><code> : Turn off HTML tags in error messages. The new format for HTML errors produces clickable messages that direct the user to a page describing the error or function in causing the error. These references are affected by docref_root and docref_ext.<\/code><\/p>\n<p><code>11. <\/code><code>xmlrpc_errors boolean<\/code><code> : Turns off normal error reporting and formats errors as XML-RPC error message.<\/code><\/p>\n<p><code>12. <\/code><code>xmlrpc_error_number integer<\/code><code> : Used as the value of the XML-RPC faultCode element.<\/code><\/p>\n<p><code>13. <\/code><code>docref_root string<\/code><code> : The new error format contains a reference to a page describing the error or function causing the error. In case of manual pages you can download the manual in your language and set this ini directive to the URL of your local copy. If your local copy of the manual can be reached by \"\/manual\/\" you can simply use docref_root=\/manual\/. <\/code><\/p>\n<p><code>Additional you have to set docref_ext to match the fileextensions of your copy docref_ext=.html. It is possible to use external references. For example you can use docref_root=http:\/\/manual\/en\/ or docref_root=http:\/\/landonize.it\/?how=url&amp;theme=classic&amp;filter=Landon &amp;url=http%3A%2F%2Fwww.php.net%2F<\/code><\/p>\n<p><code>14. <\/code><code>docref_ext string<\/code><code> : The value of docref_ext must begin with a dot \".\".<\/code><\/p>\n<p><code>15. <\/code><code>error_prepend_string string<\/code><code> : String to output before an error message.<\/code><\/p>\n<p><code>16. <\/code><code>error_append_string string<\/code><code> : String to output after an error message.<\/code><\/p>\n<p><code>17. <\/code><code>error_log string<\/code><code> : Name of the file where script errors should be logged. The file should be writable by the web server's user. If the special value syslog is used, the errors are sent to the system logger instead.<\/code><\/p>\n<p><b>\u00a0<\/b><\/p>\n<p>Predefined Constants: Below mentioned constants are available as part of the PHP core<\/p>\n<table border=\"0\" cellspacing=\"0\" cellpadding=\"0\">\n<thead>\n<tr>\n<td>\n<p align=\"center\"><b>Value<\/b><\/p>\n<\/td>\n<td width=\"212\">\n<p align=\"center\"><b>Constant<\/b><\/p>\n<\/td>\n<td width=\"411\">\n<p align=\"center\"><b>Description<\/b><\/p>\n<\/td>\n<\/tr>\n<\/thead>\n<tbody>\n<tr>\n<td>1<\/td>\n<td width=\"212\"><b>E_ERROR<\/b>\u00a0(integer)<\/td>\n<td width=\"411\">Fatal run-time errors. These indicate errors that cannot be recovered from, such as a memory allocation problem.Execution of the script is halted.<\/td>\n<\/tr>\n<tr>\n<td>2<\/td>\n<td width=\"212\"><b>E_WARNING<\/b>\u00a0(integer)<\/td>\n<td width=\"411\">Run-time warnings (non-fatal errors).Execution of the script is not halted.<\/td>\n<\/tr>\n<tr>\n<td>4<\/td>\n<td width=\"212\"><b>E_PARSE<\/b>\u00a0(integer)<\/td>\n<td width=\"411\">Compile-time parse errors.Parse errors should only be generated by the parser.<\/td>\n<\/tr>\n<tr>\n<td>8<\/td>\n<td width=\"212\"><b>E_NOTICE<\/b>\u00a0(integer)<\/td>\n<td width=\"411\">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.<\/td>\n<\/tr>\n<tr>\n<td>16<\/td>\n<td width=\"212\"><b>E_CORE_ERROR<\/b>(integer)<\/td>\n<td width=\"411\">Fatal errors that occur during PHP&#8217;s initial startup. This is like an\u00a0<b>E_ERROR<\/b>, except it is generated by the core of PHP.<\/td>\n<\/tr>\n<tr>\n<td>32<\/td>\n<td width=\"212\"><b>E_CORE_WARNING<\/b>(integer)<\/td>\n<td width=\"411\">Warnings (non-fatal errors) that occur during PHP&#8217;s initial startup. This is like an\u00a0<b>E_WARNING<\/b>, except it is generated by the core of PHP.<\/td>\n<\/tr>\n<tr>\n<td>64<\/td>\n<td width=\"212\"><b>E_COMPILE_ERROR<\/b>(integer)<\/td>\n<td width=\"411\">Fatal compile-time errors. This is like an\u00a0<b>E_ERROR<\/b>, except it is generated by the Zend Scripting Engine.<\/td>\n<\/tr>\n<tr>\n<td>128<\/td>\n<td width=\"212\"><b>E_COMPILE_WARNING<\/b>(integer)<\/td>\n<td width=\"411\">Compile-time warnings (non-fatal errors).This is like an\u00a0<b>E_WARNING<\/b>, except it is generated by the Zend Scripting Engine.<\/td>\n<\/tr>\n<tr>\n<td>256<\/td>\n<td width=\"212\"><b>E_USER_ERROR<\/b>(integer)<\/td>\n<td width=\"411\">User-generated error message.This is like an\u00a0<b>E_ERROR<\/b>, except it is generated in PHP code by using the PHP function\u00a0trigger_error().<\/td>\n<\/tr>\n<tr>\n<td>512<\/td>\n<td width=\"212\"><b>E_USER_WARNING<\/b>(integer)<\/td>\n<td width=\"411\">User-generated warning message.This is like an\u00a0<b>E_WARNING<\/b>, except it is generated in PHP code by using the PHP function\u00a0trigger_error().<\/td>\n<\/tr>\n<tr>\n<td>1024<\/td>\n<td width=\"212\"><b>E_USER_NOTICE<\/b>(integer)<\/td>\n<td width=\"411\">User-generated notice message.This is like an\u00a0<b>E_NOTICE<\/b>, except it is generated in PHP code by using the PHP function\u00a0trigger_error().<\/td>\n<\/tr>\n<tr>\n<td>2048<\/td>\n<td width=\"212\"><b>E_STRICT<\/b>\u00a0(integer)<\/td>\n<td width=\"411\">Enable to have PHP suggest changes to your code which will ensure the best interoperability and forward compatibility of your code.<\/td>\n<\/tr>\n<tr>\n<td>4096<\/td>\n<td width=\"212\"><b>E_RECOVERABLE_ERROR<\/b>(integer)<\/td>\n<td width=\"411\">Catchable fatal error.It indicates that a probably dangerous error occurred, 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\u00a0<b>E_ERROR<\/b>.<\/td>\n<\/tr>\n<tr>\n<td>8192<\/td>\n<td width=\"212\"><b>E_DEPRECATED<\/b>(integer)<\/td>\n<td width=\"411\">Run-time notices. Enable this to receive warnings about code that will not work in future versions.<\/td>\n<\/tr>\n<tr>\n<td>16384<\/td>\n<td width=\"212\"><b>E_USER_DEPRECATED<\/b>(integer)<\/td>\n<td width=\"411\">User-generated warning message.This is like an\u00a0<b>E_DEPRECATED<\/b>, except it is generated in PHP code by using the PHP function\u00a0trigger_error().<\/td>\n<\/tr>\n<tr>\n<td>32767<\/td>\n<td width=\"212\"><b>E_ALL<\/b>\u00a0(integer)<\/td>\n<td width=\"411\">All errors and warnings, as supported, except of level\u00a0<b>E_STRICT<\/b>\u00a0prior to PHP 5.4.0.<\/td>\n<\/tr>\n<\/tbody>\n<\/table>\n<p>&nbsp;<\/p>\n<p><strong>Error Handling Functions:<\/strong><\/p>\n<ul>\n<li>debug_backtrace\u00a0\u2014 Generates a backtrace<\/li>\n<\/ul>\n<p>Syntax -&gt; array\u00a0<strong>debug_backtrace<\/strong>\u00a0([\u00a0int\u00a0<code><i>$options<\/i><\/code><i>\u00a0<\/i><i>= DEBUG_BACKTRACE_PROVIDE_OBJECT<\/i>\u00a0[,\u00a0int\u00a0<code><i>$limit<\/i><\/code><i>\u00a0<\/i><i>= 0<\/i>\u00a0]] )<\/p>\n<ul>\n<li>debug_print_backtrace\u00a0\u2014 Prints a backtrace. It prints the function calls, included\/required files and eval()ed stuff.<\/li>\n<\/ul>\n<p>Syntax -&gt; void\u00a0<strong>debug_print_backtrace<\/strong>\u00a0([\u00a0int\u00a0<code><i>$options<\/i><\/code><i>\u00a0<\/i><i>= 0<\/i>\u00a0[,\u00a0int\u00a0<code><i>$limit<\/i><\/code><i>\u00a0<\/i><i>= 0<\/i>\u00a0]] )<\/p>\n<ul>\n<li>error_get_last\u00a0\u2014 Get the last occurred error<\/li>\n<\/ul>\n<p>Syntax -&gt; array\u00a0<strong>error_get_last<\/strong>\u00a0(\u00a0void\u00a0)<\/p>\n<ul>\n<li>error_log\u00a0\u2014 Send an error message to the defined error handling routines<\/li>\n<\/ul>\n<p>Syntax -&gt; bool\u00a0<strong>error_log<\/strong>\u00a0(\u00a0string\u00a0<code><i>$message<\/i><\/code>\u00a0[,\u00a0int\u00a0<code><i>$message_type<\/i><\/code><i>\u00a0<\/i><i>= 0<\/i>\u00a0[,\u00a0string\u00a0<code><i>$destination<\/i><\/code>\u00a0[,\u00a0string\u00a0<code><i>$extra_headers<\/i><\/code>\u00a0]]] )<\/p>\n<ul>\n<li>error_reporting\u00a0\u2014 Sets which PHP errors are reported<\/li>\n<\/ul>\n<p>Syntax -&gt; int\u00a0<strong>error_reporting<\/strong>\u00a0([\u00a0int\u00a0<code><i>$level<\/i><\/code>\u00a0] )<\/p>\n<ul>\n<li>restore_error_handler\u00a0\u2014 Restores the previous error handler function<\/li>\n<\/ul>\n<p>Syntax -&gt; bool\u00a0<strong>restore_error_handler<\/strong>\u00a0(\u00a0void\u00a0)<\/p>\n<ul>\n<li>restore_exception_handler\u00a0\u2014 Restores the previously defined exception handler function<\/li>\n<\/ul>\n<p>Syntax -&gt; bool\u00a0<strong>restore_exception_handler<\/strong>\u00a0(\u00a0void\u00a0)<\/p>\n<ul>\n<li>set_error_handler\u00a0\u2014 Sets a user-defined error handler function<\/li>\n<\/ul>\n<p>Syntax -&gt; mixed\u00a0<strong>set_error_handler<\/strong>\u00a0(\u00a0callable\u00a0<code><i>$error_handler<\/i><\/code>\u00a0[,\u00a0int\u00a0<code><i>$error_types<\/i><\/code><i>\u00a0<\/i><i>= E_ALL | E_STRICT<\/i>\u00a0] )<\/p>\n<ul>\n<li>set_exception_handler\u00a0\u2014 Sets a user-defined exception handler function<\/li>\n<\/ul>\n<p>Syntax -&gt; callable\u00a0<strong>set_exception_handler<\/strong>\u00a0(\u00a0callable\u00a0<code><i>$exception_handler<\/i><\/code>\u00a0)<\/p>\n<ul>\n<li>trigger_error\u00a0\/ user_error \u2014 Generates a user-level error\/warning\/notice message<\/li>\n<\/ul>\n<p>Syntax -&gt; bool\u00a0<strong>trigger_error<\/strong>\u00a0(\u00a0string\u00a0<code><i>$error_msg<\/i><\/code>\u00a0[,\u00a0int\u00a0<code><i>$error_type<\/i><\/code><i>\u00a0<\/i><i>= E_USER_NOTICE<\/i>\u00a0] )<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Introduction: One of the features of PHP is its comprehensive error-handling functionality. These functions which are a part of PHP core, allow you to define your own error handling rules as well as modify the way the errors can be logged. The error reporting functions allow you to customize what level and kind of error [&hellip;]<\/p>\n","protected":false},"author":13,"featured_media":1072,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[9,1,3,6],"tags":[],"class_list":["post-373","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-development","category-general","category-technical","category-tutorials"],"yoast_head":"<!-- This site is optimized with the Yoast SEO plugin v26.9 - https:\/\/yoast.com\/product\/yoast-seo-wordpress\/ -->\n<title>PHP Error Handling and Logging - Siri Innovations<\/title>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\" \/>\n<meta property=\"og:locale\" content=\"en_US\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"PHP Error Handling and Logging - Siri Innovations\" \/>\n<meta property=\"og:description\" content=\"Introduction: One of the features of PHP is its comprehensive error-handling functionality. These functions which are a part of PHP core, allow you to define your own error handling rules as well as modify the way the errors can be logged. The error reporting functions allow you to customize what level and kind of error [&hellip;]\" \/>\n<meta property=\"og:url\" content=\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\" \/>\n<meta property=\"og:site_name\" content=\"Siri Innovations\" \/>\n<meta property=\"article:published_time\" content=\"2013-06-27T17:24:13+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2014-07-17T03:32:27+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg\" \/>\n\t<meta property=\"og:image:width\" content=\"540\" \/>\n\t<meta property=\"og:image:height\" content=\"241\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Yuva kumar\" \/>\n<meta name=\"twitter:label1\" content=\"Written by\" \/>\n\t<meta name=\"twitter:data1\" content=\"Yuva kumar\" \/>\n\t<meta name=\"twitter:label2\" content=\"Est. reading time\" \/>\n\t<meta name=\"twitter:data2\" content=\"7 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\"},\"author\":{\"name\":\"Yuva kumar\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/e2941c65eca1eecb5bf7e44fb9f6f9c0\"},\"headline\":\"PHP Error Handling and Logging\",\"datePublished\":\"2013-06-27T17:24:13+00:00\",\"dateModified\":\"2014-07-17T03:32:27+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\"},\"wordCount\":720,\"commentCount\":0,\"image\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg\",\"articleSection\":[\"Development\",\"General\",\"Technical\",\"Tutorials\"],\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\",\"url\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\",\"name\":\"PHP Error Handling and Logging - Siri Innovations\",\"isPartOf\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg\",\"datePublished\":\"2013-06-27T17:24:13+00:00\",\"dateModified\":\"2014-07-17T03:32:27+00:00\",\"author\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/e2941c65eca1eecb5bf7e44fb9f6f9c0\"},\"breadcrumb\":{\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#breadcrumb\"},\"inLanguage\":\"en-US\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage\",\"url\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg\",\"contentUrl\":\"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg\",\"width\":540,\"height\":241},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/siriinnovations.com\/blog\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"PHP Error Handling and Logging\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#website\",\"url\":\"https:\/\/siriinnovations.com\/blog\/\",\"name\":\"Technical blog from Siri Innovations\",\"description\":\"Innovative like no other\",\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/siriinnovations.com\/blog\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"en-US\"},{\"@type\":\"Person\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/e2941c65eca1eecb5bf7e44fb9f6f9c0\",\"name\":\"Yuva kumar\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"en-US\",\"@id\":\"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/687772b38575bc5be6e95c834b31796b82c9a71158f171c0323ac991815f38b2?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/687772b38575bc5be6e95c834b31796b82c9a71158f171c0323ac991815f38b2?s=96&d=mm&r=g\",\"caption\":\"Yuva kumar\"},\"url\":\"https:\/\/siriinnovations.com\/blog\/author\/yuvakumar\/\"}]}<\/script>\n<!-- \/ Yoast SEO plugin. -->","yoast_head_json":{"title":"PHP Error Handling and Logging - Siri Innovations","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/","og_locale":"en_US","og_type":"article","og_title":"PHP Error Handling and Logging - Siri Innovations","og_description":"Introduction: One of the features of PHP is its comprehensive error-handling functionality. These functions which are a part of PHP core, allow you to define your own error handling rules as well as modify the way the errors can be logged. The error reporting functions allow you to customize what level and kind of error [&hellip;]","og_url":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/","og_site_name":"Siri Innovations","article_published_time":"2013-06-27T17:24:13+00:00","article_modified_time":"2014-07-17T03:32:27+00:00","og_image":[{"width":540,"height":241,"url":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg","type":"image\/jpeg"}],"author":"Yuva kumar","twitter_misc":{"Written by":"Yuva kumar","Est. reading time":"7 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#article","isPartOf":{"@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/"},"author":{"name":"Yuva kumar","@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/e2941c65eca1eecb5bf7e44fb9f6f9c0"},"headline":"PHP Error Handling and Logging","datePublished":"2013-06-27T17:24:13+00:00","dateModified":"2014-07-17T03:32:27+00:00","mainEntityOfPage":{"@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/"},"wordCount":720,"commentCount":0,"image":{"@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg","articleSection":["Development","General","Technical","Tutorials"],"inLanguage":"en-US","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/","url":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/","name":"PHP Error Handling and Logging - Siri Innovations","isPartOf":{"@id":"https:\/\/siriinnovations.com\/blog\/#website"},"primaryImageOfPage":{"@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage"},"image":{"@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage"},"thumbnailUrl":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg","datePublished":"2013-06-27T17:24:13+00:00","dateModified":"2014-07-17T03:32:27+00:00","author":{"@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/e2941c65eca1eecb5bf7e44fb9f6f9c0"},"breadcrumb":{"@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#breadcrumb"},"inLanguage":"en-US","potentialAction":[{"@type":"ReadAction","target":["https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/"]}]},{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#primaryimage","url":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg","contentUrl":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg","width":540,"height":241},{"@type":"BreadcrumbList","@id":"https:\/\/siriinnovations.com\/blog\/php-error-handling-logging\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/siriinnovations.com\/blog\/"},{"@type":"ListItem","position":2,"name":"PHP Error Handling and Logging"}]},{"@type":"WebSite","@id":"https:\/\/siriinnovations.com\/blog\/#website","url":"https:\/\/siriinnovations.com\/blog\/","name":"Technical blog from Siri Innovations","description":"Innovative like no other","potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/siriinnovations.com\/blog\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"en-US"},{"@type":"Person","@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/e2941c65eca1eecb5bf7e44fb9f6f9c0","name":"Yuva kumar","image":{"@type":"ImageObject","inLanguage":"en-US","@id":"https:\/\/siriinnovations.com\/blog\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/687772b38575bc5be6e95c834b31796b82c9a71158f171c0323ac991815f38b2?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/687772b38575bc5be6e95c834b31796b82c9a71158f171c0323ac991815f38b2?s=96&d=mm&r=g","caption":"Yuva kumar"},"url":"https:\/\/siriinnovations.com\/blog\/author\/yuvakumar\/"}]}},"jetpack_featured_media_url":"https:\/\/siriinnovations.com\/blog\/wp-content\/uploads\/2013\/06\/29.jpg","_links":{"self":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts\/373","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/users\/13"}],"replies":[{"embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/comments?post=373"}],"version-history":[{"count":9,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts\/373\/revisions"}],"predecessor-version":[{"id":781,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/posts\/373\/revisions\/781"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/media\/1072"}],"wp:attachment":[{"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/media?parent=373"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/categories?post=373"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/siriinnovations.com\/blog\/wp-json\/wp\/v2\/tags?post=373"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}