Пример #1
0
 /**
  * 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;
 }
Пример #2
0
 /**
  * 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
     }
 }