PHP


Log4php


【目的】
SQLのエラー時のときにエラーログを出力できるようにしたい

【使用ツール】
log4php
今回使用したのは
バージョン:0.9

【使用方法】
1,Log4php Download Pageからlog4phpをダウンロードする。

2,設定ファイルの作成
log4phpのディレクトリの好きなところに
「log4php.properties」を作成する。
log4php.propertiesに以下の記述をする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
log4php.rootLogger=DEBUG, R
log4php.appender.R=LoggerAppenderDailyFile
log4php.appender.R.File=./log/log_%s.log
log4php.appender.R.Append=true
log4php.appender.R.layout=LoggerPatternLayout
log4php.appender.R.layout.ConversionPattern="%d %5p [%x] - %m%n"
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
意味として
log4php.rootLogger:ログレベルの設定
弱い順に

DEBUG  //デバッグレベル(何でも出力)
INFO //infoレベル
WARN   //warningレベル
ERROR //エラーレベル
FATAL //Fatalレベル
の順になる
(・・・といっても僕の場合DEBUGレベル以外はあまり使わないもともとエラー発生したときにしか出力させないし・・・)

log4php.appender.R.File : ログの出力先
PATHと主力ファイルの設定ができる
ちなみに上記の場合だと
サーバーのトップディレクトリの「log」フォルダの中に
「log_"出力日".log」というファイルに出力される

まぁ大事なのは上記の2つの設定だろうと思っているのだが・・・
(だれか間違っていたらツッコミ希望)

3,このファイルを作成したら
実際にサイトを保管しているサーバーの中に
ダウンロードしたlog4phpディレクトリごとアップロードする。
(不要なファイルもあるのだがよく分からないので僕はそのまま上げる)

4,結果によりログを出力させたいファイルの中に以下の記述をする
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
//まずファイルの読み込み
  require_once("(log4phpのsrc内にあるlog4phpディレクトリ)/LoggerManager.php");
define('LOG4PHP_CONFIGURATION','/home2/nhk/data/log/log4php/log4php.properties');
//設定
$log = & LoggerManager::getLogger('App');
//global変数にする(この設定を行っておけばいろんなファイルでできるようになると思う。)
global $log
?>
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
ここまで記述したら後は記述したいタイミングで
$log->info("出力内容");
$log->warn('出力内容');
$log->error('出力内容');
$log->fatal('出力内容');
$log->debug('出力内容');
という具合に記述していけばよい
それぞれ、出力内容がちょっとだけ変わる
(・・・といってもログの頭に入る文言が変わるだけなのだが)

ちなみに

感想:よく分かるドキュメントもないし使いづらいような気がするのだが使えれば
ログの出力方法で悩む必要がなくなるので楽ができる可能性がぐっと高くなる

一応、apacheのプロジェクトの一つらしい
元はJAVAの「log4j」である

2011/3/25:間違いがあったので修正を行った。
tekitoizm
参考サイト
Log4phpでlogデータ作成
Memo / PHP / log4php