/** * Log something into our log file * @param $environment = string (minimum environment state for logging this message) * @param $message = string (the message body) **/ static function Log($message = '', $environment = 'dev') { // only proceed if LogJam is enabled if (static::$enabled) { // make sure our log level matches our environment level, otherwise break out if (Director::isLive() && $environment != 'live') { return false; } else { if (Director::isTest() && ($environment != 'live' || $environment != 'test')) { return false; } } // trace the origin call $trace = SS_Backtrace::filtered_backtrace(); $trace = $trace[0]; $file = isset($trace['file']) ? $trace['file'] : ''; $line = isset($trace['line']) ? $trace['line'] : ''; // construct the line in our file $output = 'LogJam: '; $output .= $message; $output .= ' (line ' . $line . ' in ' . $file . ')'; // piggy-back PHP error_log return error_log($output); } return false; }
/** * Dispatch a message by priority level. * * The message parameter can be either a string (a simple error * message), or an array of variables. The latter is useful for passing * along a list of debug information for the writer to handle, such as * error code, error line, error context (backtrace). * * @param mixed $message Exception object or array of error context variables * @param const $priority Priority. Possible values: SS_Log::ERR, SS_Log::WARN or SS_Log::NOTICE * @param mixed $extras Extra information to log in event */ public static function log($message, $priority, $extras = null) { if ($message instanceof Exception) { $message = array('errno' => '', 'errstr' => $message->getMessage(), 'errfile' => $message->getFile(), 'errline' => $message->getLine(), 'errcontext' => $message->getTrace()); } elseif (is_string($message)) { $trace = SS_Backtrace::filtered_backtrace(); $lastTrace = $trace[0]; $message = array('errno' => '', 'errstr' => $message, 'errfile' => @$lastTrace['file'], 'errline' => @$lastTrace['line'], 'errcontext' => $trace); } try { self::get_logger()->log($message, $priority, $extras); } catch (Exception $e) { // @todo How do we handle exceptions thrown from Zend_Log? // For example, an exception is thrown if no writers are added } }