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; } } }