PHPマニュアル/PEARマニュアル | ユーザフォーラムで議論/質問 | マニュアル検索 | ハイライト | ハイライトオフ | ポータル | php spot

ログ出力 | JavaScript入門&応用&リファレンスなら「JavaScriptist」

  

ログ出力

ログ出力 – 導入

概要

バージョン 1.5.0 以降、PEAR::Auth の内部動作のログを取得する機能が追加されました。これは PEAR::Log およびそのログオブザーバコンポーネントを用いて実装されています。

Auth は二段階のログメッセージを提供しています。 これらはそれぞれ、Log における優先度 PEAR_LOG_INFO および PEAR_LOG_DEBUG に対応しています。

PEAR_LOG_INFO のメッセージには、 Auth が行ったことについての基本的な情報が含まれます。 たとえばユーザの認証に成功した/失敗した、 ログイン画面をレンダリングした などです。

PEAR_LOG_DEBUG のメッセージには、 Auth の内部でおこっていることの詳細情報が含まれます。 たとえばどんな関数がコールされたか、認証メソッド内でのロジックの追跡、 データベースバックエンドに対して実行された SQL クエリなどです。

PEAR::Auth からログにアクセスする基本例

<?php
require_once "Auth.php";
require_once 
'Log.php';
require_once 
'Log/observer.php';

// ログイン画面を表示するコールバック関数
function loginFunction($username null$status null, &$auth null)
{
    
/*
     * HTML 出力を変更し、作成するアプリケーションに
     * あわせるようにします
     */
    
echo "<form method=\"post\" action=\"".$_SERVER['PHP_SELF']."\">";
    echo 
"ユーザ名: <input type=\"text\" name=\"username\"><br/>";
    echo 
"パスワード: <input type=\"password\" name=\"password\"><br/>";
    echo 
"<input type=\"submit\">";
    echo 
"</form>";
}

class 
Auth_Log_Observer extends Log_observer {

    var 
$messages = array();

    function 
notify($event) {

        
$this->messages[] = $event;

    }

}

$options = array(
        
'enableLogging' => true,
        
'cryptType' => 'md5',
        
'users' => array(
            
'guest' => md5('password'),
            ),
        );
$a = new Auth("Array"$options"loginFunction");

$infoObserver = new Auth_Log_Observer(PEAR_LOG_INFO);

$a->attachLogObserver($infoObserver);

$debugObserver = new Auth_Log_Observer(PEAR_LOG_DEBUG);

$a->attachLogObserver($debugObserver);

$a->start();

if (
$a->checkAuth()) {
    
/*
     * サイトに出力する内容をここに書きます
     */
    
print "認証に成功しました。<br/>";
}

print 
'<h3>ログ出力</h3>'
    
.'<b>PEAR_LOG_INFO レベルのメッセージ</b><br/>';

foreach (
$infoObserver->messages as $event) {
    print 
$event['priority'].': '.$event['message'].'<br/>';
}

print 
'<br/>'
    
.'<b>PEAR_LOG_DEBUG レベルのメッセージ</b><br/>';

foreach (
$debugObserver->messages as $event) {
    print 
$event['priority'].': '.$event['message'].'<br/>';
}

print 
'<br/>';
?>

ログ機能を有効にするには、オプションの配列で "enableLogging" に TRUE を設定し、それを Auth のコンストラクタの二番目の引数として渡します。

Auth のログメッセージを取得するには、 Log_Observer を継承したクラスを作成し、 notify() 関数を実装してそこでログメッセージを処理します。

定義した新しい Log_Observer のインスタンスを Auth::attachLogObserver() に渡します。

Log_Observer で取得するメッセージの型を絞るには、 PEAR_LOG_INFO あるいは PEAR_LOG_DEBUGLog_Observer への最初のパラメータに指定します。 デフォルトは PEAR_LOG_INFO です。 絞込みの詳細については、Log のドキュメント を参照ください。

<?php
$observer 
= new My_Log_Observer(PEAR_LOG_DEBUG);
?>

Note

このコンテナは、バージョン 1.5.0 以降で使用できます。

忘却曲線を使ってこの知識を確実に記憶に残す

フォーラムで「ログ出力」について話す
各種マニュアル: PHPマニュアル | PEARマニュアル | Smarty(英語)マニュアル | PHP-GTKマニュアル | ログ出力」をGoogle検索
copyright © 1997-2024 PHP ドキュメント作成グループ(ライセンス). provided by php spot. マニュアル: