Pear - Log

Advertisement

概要(Pear::Logとは)

プログラム中からのログメッセージ出力をサポートするPearのパッケージです。
ログ出力レベルの制御や、いろいろなリソースに対するログメッセージの出力機能などをサポートしています。

パッケージpear/Logの入手

pearを利用してインストールします。
pear install pear/Log

下記のURLより、直接パッケージをダウンロードすることもできます。
http://pear.php.net/package/Log/download

QuickStart(メッセージのファイル出力)

1.Loggerインスタンス生成

ログ出力クラスのインスタンスを生成します。
$log = Log::singleton("file", "c:\\logfile.log", null, null, PEAR_LOG_DEBUG);

2.ログ出力

ログメッセージを出力します。
$log->debug("this is debug message.");

2種類のインスタンス生成方法

ログ出力クラスのインスタンスを生成する方法は、2通りあります。

Log::singletonメソッド
$log = Log::singleton("file", "c:\\logfile.log", null, null, PEAR_LOG_DEBUG);

Log::factoryメソッド
$log = Log::factory("file", "c:\\logfile.log", null, null, PEAR_LOG_DEBUG);
factoryでは毎回インスタンス生成が行われるのに対し、singletonの場合はインスタンスが生成済みの場合、そのインスタンスへの参照を返します。
参考:singletonパターン Log::singleton,Log::factory共に、同一のパラメータを受け取ります。

インスタンス生成時のパラメータ

インスタンス生成時のパラメータ定義は以下のとおりです。
Log::factory($handler, $name = '', $ident = '', 
             $conf = array(), $level = PEAR_LOG_DEBUG);

各パラメータの説明

$handler(String)
ファイルやデータベースなどの、ログを出力する方法を指定します。
パラメータハンドラ名説明
consoleThe Console Handlerログメッセージをコンソールに出力します。
displayThe Display Handlerログメッセージをブラウザに出力します。
error_logThe Error_Log HandlerPHPのerror_log関数を利用してログメッセージを出力します。
fileThe File Handlerログメッセージをファイルに出力します。
mailThe Mail Handlerログメッセージをメールで送信します。
nullThe Null Handler何もしません
sqlThe SQL (DB) Handlerログメッセージをデータベースのテーブルに出力します。テーブルのレイアウトは後述※1
sqlliteThe Sqlite HandlerログメッセージをSQLLiteのテーブルに出力します。テーブルのレイアウトは後述※2
syslogThe Syslog Handlerログメッセージをシステムのロギングサービスに送ります。
windowThe Window Handlerログメッセージをブラウザの別ウィンドウに送ります。

※1 ログ出力用のデータベーステーブル形式
CREATE TABLE log_table (
    id          INT NOT NULL,
    logtime     TIMESTAMP NOT NULL,
    ident       CHAR(16) NOT NULL,
    priority    INT NOT NULL,
    message     VARCHAR(200),
    PRIMARY KEY (id)
);

※1 SQLLiteログ出力用のテーブル形式
CREATE TABLE log_table (
    id          INTEGER PRIMARY KEY NOT NULL,
    logtime     NOT NULL,
    ident       CHAR(16) NOT NULL,
    priority    INT NOT NULL,
    message
);

$name(String):
ログ出力のリソース名を指定します。指定する値はハンドラのタイプによって異なります。
例:file:ファイル名、sql:テーブル名

$ident(String):
ログ出力用のインスタンスを一意に識別するためのIDを指定します。
IDはログメッセージと共に出力され、たくさんのログメッセージから目的のメッセージを識別する手助けとなります。
$conf(Array):
連想配列を利用して、ハンドラに対する特殊な設定を指定します。
例:file:array("mode" => 0600, "timeFormat" => "%X %x");

$level(Integer):
ログレベルを指定します。指定には、あらかじめ用意されている定数を利用します。

指定するログレベル一覧。 err()
定数ショートカット利用目的
PEAR_LOG_EMERGemerg()システムに対して安全ではない場合の警告
PEAR_LOG_ALERTalert()対応に急を要する警告
PEAR_LOG_CRITcrit()危機的な状況を知らせる警告
PEAR_LOG_ERRエラーの発生
PEAR_LOG_WARNINGwarning()重要な警告
PEAR_LOG_NOTICEnotice()重要ではない警告
PEAR_LOG_INFOinfo()お知らせ
PEAR_LOG_DEBUGdebug()デバッグ

2種類のログ出力方法

2種類のログ出力方法があります。

レベル別のメソッドを利用

出力するレベルごとにメソッドを使い分けます。
$log->debug("message1");
$log->error("message2");
メソッド一覧は前述の表を参照してください。

共通メソッドを利用

Log::logメソッドを利用して、どのログレベルの場合でも、同じメソッドで出力することができます。
$log->log("message1", PEAR_LOG_DEBUG);
$log->log("message2", PEAR_LOG_ERR);
指定する定数は前述の表を参照してください。

リンク

Advertisement

ショートカット

634トップページ
このカテゴリのトップページに戻る
634ラボ

サイト検索

Google

Web サイト内

Y!ログール