PHPのロガーを作りました

PHPのロギングにはPEAR::Logやlog4phpなどありますが、どうもしっくりこなかったので自作しました。とにかく簡単にログが取れるようにしています。

github.com

使い方はsample.phpを見ていただければと思いますが、まず最初にconfig.phpの「ログファイル名(パス」「出力ログレベル」「ログファイルの最大サイズ」を設定してください。あとは、php_logger.phpをrequireすれば準備完了です。

<?php
$log = new PHP_Logger();
$log->trace("This is a trace log.");
// output:: 2015-10-29 14:51:50.352164: [trace] This is a trace log.

これだけ。クラス内などで使うと、クラス名や関数名も出力してくれます。

あと実験用ですが、引数に変数を与えることで、中身の値も同時に出力するようになっています(通常の変数と、1次元配列のみ対応)。なので、Exceptionで投げたメッセージもしっかりログファイルに書き残してくれます。

<?php
class Sample_Dev_Class {
    public function print_dev_log() {
        $log = new PHP_Logger();
        $var1 = "Hello World.";
        $var2 = 123 * 456;
        $arr = array('google', 'maicrosoft', 'apple', 'adobe', 'oracle');
        $log->trace("*** Dev ***", $var1, $var2, $arr);
        // output:: 2015-10-29 14:51:50.352656: [trace] Sample_Dev_Class::print_dev_log *** Dev ***
        //          var[0] => Hello World.
        //          var[1] => 56088
        //          arr[2][0] => google
        //          arr[2][1] => maicrosoft
        //          arr[2][2] => apple
        //          arr[2][3] => adobe
        //          arr[2][4] => oracle
    }
}

$sdc = new Sample_Dev_Class();
$sdc->print_dev_log();

log4phpは便利なんだけど、便利すぎていらない機能まであったりするのでうーんこの、って感じです。車輪の再発明、かもしれないけど私にはこういうのでいいんです。