PHPのロガーを作りました
PHPのロギングにはPEAR::Logやlog4phpなどありますが、どうもしっくりこなかったので自作しました。とにかく簡単にログが取れるようにしています。
使い方は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は便利なんだけど、便利すぎていらない機能まであったりするのでうーんこの、って感じです。車輪の再発明、かもしれないけど私にはこういうのでいいんです。