示例#1
0
 public function log($data, $level)
 {
     if ($level >= $this->level) {
         $raddr = array_key_exists('REMOTE_ADDR', $_SERVER) ? $_SERVER['REMOTE_ADDR'] : '-';
         if (is_array($data)) {
             $output = array();
             foreach ($data as $item) {
                 if (is_string($item) || is_numeric($item)) {
                     $output[] = (string) $item;
                 } elseif (is_object($item)) {
                     $output[] = "<" . get_class($item) . (method_exists($item, '__toString') ? ": " . (string) $item : "") . ">";
                 } else {
                     $output[] = json_encode($item);
                 }
             }
             $data = implode(" ", $output);
         }
         if (BROWSER_LOG && !IS_CLI) {
             $this->logToChrome($data, $level);
         }
         if (IS_CLI) {
             Cli::plog($level, $data);
         } else {
             $data = "[CF] [" . @date('M j H:i:s') . "] [" . $raddr . "] [" . self::$levels[$level] . "] " . $data;
             fwrite($this->stderr, $data . "\n");
         }
         if (DEBUG) {
             $this->log[] = $data;
         }
     }
 }