PHPプロ!TIPS+
PEAR::Logでログ管理
みなさん、ログの出力はどのように行っていますでしょうか?fwrite関数で書き出したり、error_log関数、syslog関数等を使用されている方もいると思いますが、PEAR::Logを使用すると、出力方法にファイルやメール、DB等、数種類選択でき、ログの管理が非常に簡単に行えるようになります。
PEAR::Log (http://pear.php.net/package/Log)
マニュアル(英語)
http://www.indelible.org/pear/Log/guide.php
日本語マニュアル
http://www.townmedia.org/tips/index.php?doc=PEAR/peardoc_ja&_pear=package.logging.html
PEAR::Logでサポートする出力方法は次のとおりです。
- file → ローカルファイルシステム上の任意のファイルにデータを格納します。
- mcal → カレンダアプリケーション。このデータタイプを利用するには、libmcal と mcal PHP 拡張モジュールが必要です。
- sql → PEAR::DB を使ってデータベースに格納します。
- syslog → Unix 系システムではsyslog を、 Windows NT/2000/XP 系システムでは イベントログ を使ってデータを格納します。
- mail → メールボックスにログメッセージを送信します。
- console → テキストコンソールにログメッセージを書きます。
以下のようなコードでログを出力することができます。
--ファイルに出力する場合--
<?php
require_once 'Log.php';
$file = &Log::factory('file', 'out.log', 'TEST');
$file->log('ログ内容');
?>
--出力内容--
Sep 27 12:10:48 TEST [info] ログ内容
指定した場所にout.logファイルが作成され、以降はログが追記されていきます。引数にオプションで、ファイルのパーミッションや日付のフォーマット等を指定することができます。
--日付フォーマット変更・パーミッション777を指定する場合--
<?php
require_once 'Log.php';
$conf = array('mode' => 0777, 'timeFormat' => '%X %x');
$file = &Log::factory('file', 'out.log', 'TEST', $conf);
$file->log('ログ内容');
?>
--出力内容--
12:15:11 09/27/06 TEST [info] ログ内容
--メールに出力する場合--
<?php
require_once "Log.php";
$conf = array('from'=>'example@co.jp', 'subject'=>'Log Subject');
$to = 'webmaster@example.com';
$logger = &Log::singleton('mail', $to, 'ident', $conf);
$message = "ログ内容";
$logger->log($message);
?>
--受信メール--
件名: Log Subject
差出人: example@co.jp
宛先: webmaster@example.com
本文 : Sep 27 12:25:20 ident [info] ログ内容
以上のコードだけで、指定したアドレスにログ用のメールを送信できます。
※詳細な使用方法・設定等はマニュアルを参考して下さい。
このように、PEAR::Logを使用すれば、簡単にログの出力が行えます。エラーログ管理等に是非、使用してみてはいかがでしょう。
バックナンバーについて
TIPS-MLは、毎週金曜日に更新され、新しい記事が掲載されます。




ページのトップへ


開発の早い段階で対応ブラウザで確認することは大事ですね!