1

すべてのエラーが1行のコードで自動的にログに記録される方法を探しています。Asp.NETをご存知の場合は、Application_Errorイベントハンドラーを使用することの意味をおそらくご存知でしょう。

PHPロギングフレームワークをチェックしましたか?SOの質問ですが、すべて同じように見えます。すべてのログメッセージを手動でログに記録する必要があります。つまり、ログを記録するすべての場所でログ関数を呼び出す必要があります。

私が探しているのはこのようなものではありません(KLoggerで使用されています)

require_once 'KLogger.php';
...
$log = new KLogger ( "log.txt" , KLogger::DEBUG );

// Do database work that throws an exception
$log->LogError("An exception was thrown in ThisFunction()");

// Print out some information
$log->LogInfo("Internal Query Time: $time_ms milliseconds");

// Print out the value of some variables
$log->LogDebug("User Count: $User_Count");
4

1 に答える 1

6

PHP で独自のカスタム エラー ハンドラ関数を作成し、それをエラー ハンドラとして設定できます。

何かのようなもの:

function handle_error($error_level,$error_message)
{
    /*
    here do what you want...typically log it into db/file/send out 
    emails based on error level etc..
    */
}

この関数を PHP のデフォルト エラー ハンドラとして設定するには、次の行を追加します。

set_error_handler("handle_error"); 

すべてのエラーは、内部に書かれている内容に基づいて PHP によって処理されるようになりましたhandle_error

于 2012-08-24T05:15:37.623 に答える