0

Zend\Log が次のエラー処理関数を壊しているのはなぜですか?

function error_handler($errno, $errstr, $errfile, $errline, $errcontext = null)
{
    global $Logger;
    
    $Logger->log(6 , "Error '$errstr' received.<br>");
    return true;
}

$Logger = new \Zend\Log\Logger;
$Logger->addWriter(new \Zend\Log\Writer\Null);

set_error_handler('error_handler');

trigger_error('a', E_USER_ERROR);
trigger_error('b', E_USER_ERROR);
trigger_error('c', E_USER_ERROR);
trigger_error('d', E_USER_ERROR);

echo 'done.';

行 $Logger->log() を削除すると、スクリプトは期待どおりに実行されます。

終わり。

2 番目の E_USER_ERROR で終了するスクリプトのログ行をそのままにしておきます。

致命的なエラー: 37 行目の Z:\Workspace\xampp\htdocs\tests\error.php の b

同様に、エラー レベルを E_USER_WARNING に変更すると、次のようになります。

警告: 37 行目の Z:\Workspace\xampp\htdocs\tests\error.php の b

警告: c in Z:\Workspace\xampp\htdocs\tests\error.php 行 38

警告: 39 行目の Z:\Workspace\xampp\htdocs\tests\error.php の d

終わり。

4

1 に答える 1