Top / PEAR / Log


 #setlinebreak(on)
 * ログ排出機構 PEAR::Log [#z237dad6]
 
 [[observerパターンによるログ出力の実装>PEAR/Log/observer]]
 
 #htmlinsert(googleAdsense.html)
 ** 概要 [#q83c9da4]
 #ref(http://dozo.rgr.jp/img/img20_file.png,right,nolink,around,PHP::PEAR)
 
 製作フェーズでも運用フェーズでも、
 なにかとLogっていうのが大切になってきます。
 システム作ったときに、
 デバッグしたり、
 ページビュー数えたり、
 障害対応したりと
 そのLogの排出先を状況によって切り替えたりするのに便利。
 
 
 (ノ・・)ン。。。。。。(((●コロコロッ
 
 
 
 ログの排出コードってこんな感じですかねぇ。
 
     $file_handler = fopen("pg.log","a");
     fwrite( $file_handler , "大変です。サーバーが止まりました。" );
     fclose( $file_handler );
 
 単にファイルを作って、
 そこにファイルを書き込んでいるだけですが、
 ログってそんなもんだと思います。
 (O.O;)(o。o;)
 
 これを適当にクラス化して、
 他で流用するのが一般的ですが、
 システム作るたびにこのコードを書くと、
 だんだんイヤになってきます。
 
 
 
 
 
 そこで私は[[PEAR::Log:http://pear.php.net/package/Log]]を使って、
 この部分省略します。
 
 
 
 用意されているハンドラ(ログの排出先と言った感じ)は以下の通り。
 
     Console   コンソール
     Display   ブラウザ(printと同じ)
     Error_Log PHPのerror_log()関数
     File      ファイルに記入
     Mail      PHPのmail()関数
     SQL(DB)   PEAR::DBを使用
     Sqlite    SQLiteに出力
     Syslog    Syslogに出力
     Window    ??
 
 DBはあまり使わないかもしれないが、
 File, Syslog, Mailあたりは使えそう。
 あと、Sqliteっていうのも発想としては面白いね。
 今度実践投入してみよう。
 
 
 
 コードはほとんどありません。
 重要なのは設定の配列。
 ログの排出先によって設定がガラッとわかる。
 排出先ごとにオブジェクトを作っていく感じかな。
 
     // ファイルの場合
     $conf = array('mode'=>0644);
     $logObj = &Log::singleton('file', 'logfile.log', 'ident', $conf, PEAR_LOG_NOTICE);
     // メールの場合
     $conf = array('from'=>'dozo@dozo.rgr.jp', 'subject'=>'Log');
     $logObj = &Log::singleton('mail', 'webmaster@dozo.rgr.jp', 'ident', $conf, PEAR_LOG_ALERT);
     // syslogの場合
     $logObj = &Log::singleton('syslog', LOG_LOCAL0, 'ident');
  
     $logObj->log("Log でてます?");
 
 だいたいこんな感じ。
 ホンの数行でログ排出機構が完成。
 (^_^)
 
 
 プログラムが動き出すのが、
 Webだったり、mailだったり、cronだったりすると、
 書き出すファイルのパーミッションの問題がでる。
 ファイルに書き出すときは777の方が良いかもしれない。
 -singleton()のパラメータの数が違うような・・バージョンに依存する?? -- [[ANN]] &new{2005-08-06 05:10:35 (土)};
 -おお!?identが抜けてますね。。これは大変失礼しました。まぁ、このページにはそう言うことは良くありますのでご容赦を。 -- [[dozo]] &new{2005-08-06 10:42:06 (土)};
 -hello ! -- [[Best regards]] &new{2007-06-02 03:05:21 (土)};
 -Hello.  <a href=http://pthc-hussyfan.50webs.com/preteen-models.html>preteen models</a><a href=http://pthc-hussyfan.50webs.com/index.html>hentai teen titans</a>  <a href=http://pthc-hussyfan.50webs.com/pthc.html>pthc</a>  <a href=http://pthc-hussyfan.50webs.com/bukkake.html>bukkake</a>  <a href=http://pthc-hussyfan.50webs.com/preteen-lolita.html>Preteen Lolita</a>  <a href=http://pthc-hussyfan.50webs.com/preteen-lolitas.html>Preteen Lolitas</a>  <a href=http://pthc-hussyfan.50webs.com/hussyfan.html>hussyfan</a>  <a href=http://pthc-hussyfan.50webs.com/preteen-nude.html>preteen nude</a>  [url=http://pthc-hussyfan.50webs.com/pthc.html]pthc[/url]  [url=http://pthc-hussyfan.50webs.com/bukkake.html]bukkake[/url]  [url=http://pthc-hussyfan.50webs.com/hussyfan.html]hussyfan[/url]  [url=http://pthc-hussyfan.50webs.com/preteen-lolita.html]Preteen Lolita[/url] [url=http://pthc-hussyfan.50webs.com/index.html]hentai teen titans[/url]  http://pthc-hussyfan.50webs.com/bukkake.html  -- [[Mamadshah]] &new{2007-06-03 02:35:08 (日)};
 -Hello.    -- [[Mamadshah]] &new{2007-06-03 02:35:08 (日)};
 
 #comment
 


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Third Project
証券会社ランキング比較