| <?php | 
| class TopLogger | 
| { | 
|     public $conf = array( | 
|         "separator" => "\t", | 
|         "log_file" => "" | 
|     ); | 
|   | 
|     private $fileHandle; | 
|   | 
|     protected function getFileHandle() | 
|     { | 
|         if (null === $this->fileHandle) | 
|         { | 
|             if (empty($this->conf["log_file"])) | 
|             { | 
|                 trigger_error("no log file spcified."); | 
|             } | 
|             $logDir = dirname($this->conf["log_file"]); | 
|             if (!is_dir($logDir)) | 
|             { | 
|                 mkdir($logDir, 0777, true); | 
|             } | 
|             $this->fileHandle = fopen($this->conf["log_file"], "a"); | 
|         } | 
|         return $this->fileHandle; | 
|     } | 
|   | 
|     public function log($logData) | 
|     { | 
|         if ("" == $logData || array() == $logData) | 
|         { | 
|             return false; | 
|         } | 
|         if (is_array($logData)) | 
|         { | 
|             $logData = implode($this->conf["separator"], $logData); | 
|         } | 
|         $logData = $logData. "\n"; | 
|         fwrite($this->getFileHandle(), $logData); | 
|     } | 
| } | 
| ?> |