/** * Logs message or exception to file and sends email notification. * @param string|array|exception * @param int one of constant INFO, WARNING, ERROR (sends email), CRITICAL (sends email) * @return bool was successful? */ public function log($message, $priority = self::WARNING) { $file = NULL; if ($message instanceof \Exception) { ob_start(); \Nette\Diagnostics::$blueScreen->render($message); $file = ob_get_clean(); } elseif (is_array($message) && isset($message[1])) { $message = $message[1]; } elseif (is_array($message)) { $message = implode(' ', $message); // needed? } $this->server->send('log', array('message' => (string) $message, 'priority' => $priority), $file); return $this->logger ? $this->logger->log($message, $priority) : TRUE; }
/** * @param \Nette\Http\Request */ public function log(\Nette\Http\Request $req) { $this->server->send('access', array('ua' => $req->getHeader('User-Agent'), 'ip' => $req->getRemoteAddress(), 'host' => $req->getRemoteHost(), 'method' => $req->getMethod(), 'url' => (string) $req->getUrl(), 'memory' => function_exists('memory_get_peak_usage') ? number_format(memory_get_peak_usage() / 1000000, 2, '.', ' ') : 'n/a', 'time' => number_format((microtime(TRUE) - \Nette\Diagnostics\Debugger::$time) * 1000, 1, '.', ' '), 'referer' => (string) $req->getHeader('Referer'))); }