Pear – Log
Advertisement
概要(Pear::Logとは)
プログラム中からのログメッセージ出力をサポートするPearのパッケージです。
ログ出力レベルの制御や、いろいろなリソースに対するログメッセージの出力機能などをサポートしています。
パッケージpear/Logの入手
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種類のインスタンス生成方法
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)
ファイルやデータベースなどの、ログを出力する方法を指定します。
| パラメータ | ハンドラ名 | 説明 |
|---|---|---|
| console | The Console Handler | ログメッセージをコンソールに出力します。 |
| display | The Display Handler | ログメッセージをブラウザに出力します。 |
| error_log | The Error_Log Handler | PHPのerror_log関数を利用してログメッセージを出力します。 |
| file | The File Handler | ログメッセージをファイルに出力します。 |
| The Mail Handler | ログメッセージをメールで送信します。 | |
| null | The Null Handler | 何もしません |
| sql | The SQL (DB) Handler | ログメッセージをデータベースのテーブルに出力します。テーブルのレイアウトは後述※1 |
| sqllite | The Sqlite Handler | ログメッセージをSQLLiteのテーブルに出力します。テーブルのレイアウトは後述※2 |
| syslog | The Syslog Handler | ログメッセージをシステムのロギングサービスに送ります。 |
| window | The 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):
ログレベルを指定します。指定には、あらかじめ用意されている定数を利用します。
指定するログレベル一覧。
| 定数 | ショートカット | 利用目的 |
|---|---|---|
| PEAR_LOG_EMERG | emerg() | システムに対して安全ではない場合の警告 |
| PEAR_LOG_ALERT | alert() | 対応に急を要する警告 |
| PEAR_LOG_CRIT | crit() | 危機的な状況を知らせる警告 |
| PEAR_LOG_ERR | エラーの発生 | |
| PEAR_LOG_WARNING | warning() | 重要な警告 |
| PEAR_LOG_NOTICE | notice() | 重要ではない警告 |
| PEAR_LOG_INFO | info() | お知らせ |
| PEAR_LOG_DEBUG | debug() | デバッグ |
2種類のログ出力方法
レベル別のメソッドを利用
出力するレベルごとにメソッドを使い分けます。
$log->debug("message1");
$log->error("message2");
メソッド一覧は前述の表を参照してください。
共通メソッドを利用
Log::logメソッドを利用して、どのログレベルの場合でも、同じメソッドで出力することができます。
$log->log("message1", PEAR_LOG_DEBUG);
$log->log("message2", PEAR_LOG_ERR);
指定する定数は前述の表を参照してください。

