TEDIA会員に登録したメールアドレスとパスワードを入力してください

メールアドレス:

     パスワード:


パスワードを忘れた方はパスワードの確認を行ってください。

TEDIA会員へのご登録がお済みで無い方はこちらで登録ができます


>> テクノロジーポータル TEDIA トップページへ戻る <<

Think IT Software Developer's Think IT Find-IT 失敗しないソフト選び Find-IT TEDIA テクノロジーポータル TEDIA インストールマニアックス2008 インストールマニアックス2008

TEDIA SponsorsOpen Source Web Development Tutorials - Dev Shed

PHPでログ機能を作ろう
(2009/02/13公開)

コードの解説

 ここではPEAR::Logパッケージ(http://pear.php.net/package/Log/)を使って、寄せ集めではあるが独自のMyLogというクラスを使ってみた。

 このMyLogを使ったのは、自分自身のログ記録の必要事項に沿って、後ほどカスタマイズができるようにするためだ。実際、いくつか変更を加えている。

 グローバル変数を用いていくつかのパラメータを設定している。このグローバル変数はアプリケーションのグローバル変数であることもある。それらの変数とは:

$myGlobal['log']['logfile']:ログファイルの位置を指定する(例:"f:trace.log")

$myGlobal['log']['level']:ログ記録がなされるべきログのレベルを指定する。レベルとは;

0 システム使用不可
1 緊急に対策が必要
2 危機状態
3 エラー発生
4 警告発生
5 正常だが注意事項あり
6 情報のみ
7 デバッグ関連情報

 これらのレベルはPEAR::Logライブラリからのものである。

 $myGlobal['log']['size']:ログの総サイズを指定する。例えば、32と指定した場合、ログファイルの総サイズが32メガバイトとなる。今回のクラスでは、2つの16メガバイトのファイルを作り、2つ目のファイルがいっぱいになる寸前に、最初のものが削除されるようになっている。こうすることにより、ログの継続性が保たれる。

 $ myGlobal ['log']['email_address'] = 'info@example.com':重要なログメッセージがこのメールアドレスに送信される。

 $ myGlobal ['log']['email_level'] = 1:このレベル以上のメッセージが、上の「email_address」で指定したアドレスに送信される。

 アプリケーションの中では、使用する前にMyLogのインスタンスを呼び出す必要がある。


// logging object 
$objMyLog = new MyLog() ;



 このオブジェクトにより、アプリケーション内のどこでも情報をログ記録することができる。このインスタンスのスコープは大域スコープであることに注意。


// logging in a script
$GLOBALS['objMyLog']->writelog("Could not create instance with dsn $dsn", 2, __FILE__, __LINE__) ; 



 この命令文において、最初の引数はログメッセージで、2番目の引数は優先度(ここでは2)、3番目と4番目の引数はそれぞれファイル名と行番号となっている。


前のページ     1    2    3    4    5    次のページ

Copyright © 2008 Ziff Davis Enterprise, Inc.
Originally appearing in the U.S. Edition of Dev Shed. All Rights Reserved.