phpでlog4php

phpでログ出力!!
っと題して、phpでのログ出力は、いくつか方法があるみたい。
PEAR::Log
log4php(log4jの類似)
error_log関数
orz..

今回は、log4phpを勉強。(@@)
Log4php本家よりphpライブラリをDLして、zipファイルを解凍し、解凍したフォルダをphp本体の配下にCopy..
パスを通すためphp.iniに下記を追加する。

include_path=".;C:\php\pear;C:\php\log4php"



設定ファイル(log4php.properties)を作成し、パスの通った場所に配置する。

log4php.properties

log4php.rootLogger=DEBUG, R
log4php.appender.R=LoggerAppenderDailyFile
log4php.appender.R.file=c:/php/log/%s.log
log4php.appender.R.layout=LoggerLayoutSimple

実行PHP

<?php
/**
 * プロパティファイルの指定
 */
define('LOG4PHP_CONFIGURATION', 'log4php.properties');

require_once "LoggerManager.php";

?>
<?php
    /**
     * Loggerの取得
     * スクリプト名をLogger名として渡す
     */
    $logger =& LoggerManager::getLogger(
            basename($_SERVER['SCRIPT_NAME']));

    /**
     * ログの出力
     */
    $logger->debug('DEBUGメッセージです');
    $logger->info('INFOメッセージです');
    $logger->warn('WARNメッセージです');
    $logger->error('ERRORメッセージです');
    $logger->fatal('FATALメッセージです');

    /**
     * シャットダウン
     */
    LoggerManager::shutdown();
?>

出力結果

DEBUG - DEBUGメッセージです
INFO - INFOメッセージです
WARN - WARNメッセージです
ERROR - ERRORメッセージです



ログのフォーマット変更

log4php.propertiesを下記のように変更する。

log4php.rootLogger=DEBUG, R
log4php.appender.R=LoggerAppenderDailyFile
log4php.appender.R.file=c:/php/log/%s.log
log4php.appender.R.layout=LoggerPatternLayout
log4php.appender.R.layout.ConversionPattern=%d ::%-5p - %m%n

出力結果

2009-04-28 10:52:01,623 ::INFO  - INFOメッセージです
2009-04-28 10:52:01,623 ::WARN  - WARNメッセージです
2009-04-28 10:52:01,623 ::ERROR - ERRORメッセージです
2009-04-28 10:52:01,623 ::FATAL - FATALメッセージです


【参考サイト】
http://www.doyouphp.jp/tips/tips_log4php.shtml
http://labs.unoh.net/2007/05/php-logging-to-text-files.html