error_log 関数でファイルへログ出力ができるので、クラスとして作成してみました。
<?php # # Logger # class MyLogger { private $log_dir; private $log_fname; public function __construct($baseDir, $fname) { $this->log_dir = $baseDir; $this->log_fname = $fname; } public function Error($msg) { $log = "Error: "; $this->Output($log, $msg); } public function Info($msg) { $log = "Info: "; $this->Output($log, $msg); } protected function GetFileName() { $today = date("Ymd"); return $this->log_dir."/".$today."_".$this->log_fname; } protected function Output($str, $msg) { $date = date("Y-m-d H:i:s"); if (is_array($msg) || is_object($msg)) { $log = "[".$date."]".$str.PHP_EOL; $log .= print_r($msg, true); $log .= PHP_EOL; } else { $log = "[".$date."]".$str.$msg.PHP_EOL; } error_log($log, 3, $this->GetFileName()); } } // 実行 $log = new MyLogger('/tmp', 'test.log'); $log->Info('参考までに。'); $log->Error('大変だ。'); $arr = array('123','abc','xyz'); $log->Info($arr); ?>
出力例:
ログファイル名:/tmp/20140702_test.log
[2014-07-02 11:21:11]Info: 参考までに。 [2014-07-02 11:21:11]Error: 大変だ。 [2014-07-02 11:21:11]Info: Array ( [0] => 123 [1] => abc [2] => xyz )
コメントを残す