PHPMailer\PHPMailer

SMTP::edebug()protectedWP 1.0

Output debugging info via a user-selected method.

Method of the class: SMTP{}

No Hooks.

Return

null. Nothing (null).

Usage

// protected - for code of main (parent) or child class
$result = $this->edebug( $str, $level );
$str(string) (required)
Debug string to output
$level(int)
The debug level of this message; see DEBUG_* constants

Notes

  • See: SMTP::$Debugoutput
  • See: SMTP::$do_debug

SMTP::edebug() code WP 6.6.2

protected function edebug($str, $level = 0)
{
    if ($level > $this->do_debug) {
        return;
    }
    //Is this a PSR-3 logger?
    if ($this->Debugoutput instanceof \Psr\Log\LoggerInterface) {
        $this->Debugoutput->debug($str);

        return;
    }
    //Avoid clash with built-in function names
    if (is_callable($this->Debugoutput) && !in_array($this->Debugoutput, ['error_log', 'html', 'echo'])) {
        call_user_func($this->Debugoutput, $str, $level);

        return;
    }
    switch ($this->Debugoutput) {
        case 'error_log':
            //Don't output, just log
            error_log($str);
            break;
        case 'html':
            //Cleans up output a bit for a better looking, HTML-safe output
            echo gmdate('Y-m-d H:i:s'), ' ', htmlentities(
                preg_replace('/[\r\n]+/', '', $str),
                ENT_QUOTES,
                'UTF-8'
            ), "<br>\n";
            break;
        case 'echo':
        default:
            //Normalize line breaks
            $str = preg_replace('/\r\n|\r/m', "\n", $str);
            echo gmdate('Y-m-d H:i:s'),
            "\t",
                //Trim trailing space
            trim(
                //Indent for readability, except for trailing break
                str_replace(
                    "\n",
                    "\n                   \t                  ",
                    trim($str)
                )
            ),
            "\n";
    }
}