Home  >  Article  >  Backend Development  >  php error handling and logging

php error handling and logging

伊谢尔伦
伊谢尔伦Original
2016-11-22 09:52:291154browse

Introduction

PHP provides error handling and logging functions. These functions allow you to define your own error handling rules and modify error recording methods. In this way, you can change and enhance the error output information according to your needs To meet actual needs.

Through the logging function, you can send information directly to other log servers, or to a designated email address (or send it through a mail gateway), or to operating system logs, etc., so you have options The most important part of logging and monitoring your applications and websites.

The error reporting function allows you to customize the level and type of error feedback, which can be a simple prompt message or use a custom function to process and return information.

Example

Below we can see the error handling function in PHP Examples of usage. We define an error handling function, log error information to a file (using XML format), and send an email to the developer when a serious logic error occurs.

Example #1 Using error handles in scripts

 'Error',
            E_WARNING => 'Warning',
            E_PARSE => 'Parsing Error',
            E_NOTICE => 'Notice',
            E_CORE_ERROR => 'Core Error',
            E_CORE_WARNING => 'Core Warning',
            E_COMPILE_ERROR => 'Compile Error',
            E_COMPILE_WARNING => 'Compile Warning',
            E_USER_ERROR => 'User Error',
            E_USER_WARNING => 'User Warning',
            E_USER_NOTICE => 'User Notice',
            E_STRICT => 'Runtime Notice',
            E_RECOVERABLE_ERROR => 'Catchable Fatal Error'
        );
        // 设置要保存变量跟踪信息的错误类别
        $user_errors = array(E_USER_ERROR, E_USER_WARNING, E_USER_NOTICE);
        $err = "\n";
        $err .= "\t" . $dt . "\n";
        $err .= "\t" . $errno . "\n";
        $err .= "\t" . $errortype[$errno] . "\n";
        $err .= "\t" . $errmsg . "\n";
        $err .= "\t" . $filename . "\n";
        $err .= "\t" . $linenum . "\n";
        if (in_array($errno, $user_errors)) {
            $err .= "\t" . wddx_serialize_value($vars, "Variables") . "\n";
        }
        $err .= "\n\n";
        // for testing
        // echo $err;
        // 记录错误信息到错误日志,并在发生关键用户错误时发送电子邮件
        error_log($err, 3, "/usr/local/php4/error.log");
        if ($errno == E_USER_ERROR) {
            mail("phpdev@example.com", "Critical User Error", $err);
        }
    }
    function distance($vect1, $vect2)
    {
        if (!is_array($vect1) || !is_array($vect2)) {
            trigger_error("Incorrect parameters, arrays expected", E_USER_ERROR);
            return NULL;
        }
        if (count($vect1) != count($vect2)) {
            trigger_error("Vectors need to be of the same size", E_USER_ERROR);
            return NULL;
        }
        for ($i=0; $i

Error handling function

debug_backtrace — Generate a backtrace

debug_print_backtrace — Print a backtrace.

error_get_last — Get the last error that occurred

error_log — Send error information to somewhere

error_reporting — Set what kind of PHP errors should be reported

restore_error_handler — Restore the previous error handling function

restore_exception_handler — Restore the previously defined one Exception handling function.

set_error_handler — Set a user-defined error handling function

set_exception_handler — Set a user-defined exception handling function.

trigger_error — Generate a user-level error/warning/notice message

user_error — Alias ​​of trigger_error


Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn