Example #1
0
 public function log($level, $message, array $context = array())
 {
     // Convert to old $entry array for b/c calls
     $entry = $context;
     $entry['type'] = $level;
     $entry['message'] = $message;
     // Drush\Log\Logger should take over all of the responsibilities
     // of drush_log, including caching the log messages and sending
     // log messages along to backend invoke.
     // TODO: move these implementations inside this class.
     $log =& drush_get_context('DRUSH_LOG', array());
     $log[] = $entry;
     drush_backend_packet('log', $entry);
     if (drush_get_context('DRUSH_NOCOLOR')) {
         $red = "[%s]";
         $yellow = "[%s]";
         $green = "[%s]";
     } else {
         $red = "[%s]";
         $yellow = "[%s]";
         $green = "[%s]";
     }
     $verbose = drush_get_context('DRUSH_VERBOSE');
     $debug = drush_get_context('DRUSH_DEBUG');
     switch ($level) {
         case LogLevel::WARNING:
         case 'cancel':
             $type_msg = sprintf($yellow, $level);
             break;
         case 'failed':
             // Obsolete; only here in case contrib is using it.
         // Obsolete; only here in case contrib is using it.
         case 'error':
             $type_msg = sprintf($red, $level);
             break;
         case 'ok':
         case 'completed':
             // Obsolete; only here in case contrib is using it.
         // Obsolete; only here in case contrib is using it.
         case 'success':
         case 'status':
             // Obsolete; only here in case contrib is using it.
             // In quiet mode, suppress progress messages
             if (drush_get_context('DRUSH_QUIET')) {
                 return TRUE;
             }
             $type_msg = sprintf($green, $level);
             break;
         case 'notice':
         case 'message':
             // Obsolete; only here in case contrib is using it.
         // Obsolete; only here in case contrib is using it.
         case 'info':
             if (!$verbose) {
                 // print nothing. exit cleanly.
                 return TRUE;
             }
             $type_msg = sprintf("[%s]", $level);
             break;
         default:
             if (!$debug) {
                 // print nothing. exit cleanly.
                 return TRUE;
             }
             $type_msg = sprintf("[%s]", $level);
             break;
     }
     // When running in backend mode, log messages are not displayed, as they will
     // be returned in the JSON encoded associative array.
     if (drush_get_context('DRUSH_BACKEND')) {
         return;
     }
     $columns = drush_get_context('DRUSH_COLUMNS', 80);
     $width[1] = 11;
     // Append timer and memory values.
     if ($debug) {
         $timer = sprintf('[%s sec, %s]', round($entry['timestamp'] - DRUSH_REQUEST_TIME, 2), drush_format_size($entry['memory']));
         $entry['message'] = $entry['message'] . ' ' . $timer;
     }
     $width[0] = $columns - 11;
     $format = sprintf("%%-%ds%%%ds", $width[0], $width[1]);
     // Place the status message right aligned with the top line of the error message.
     $message = wordwrap($entry['message'], $width[0]);
     $lines = explode("\n", $message);
     $lines[0] = sprintf($format, $lines[0], $type_msg);
     $message = implode("\n", $lines);
     drush_print($message, 0, STDERR);
 }
Example #2
0
 public function log($level, $message, array $context = array())
 {
     // Convert to old $entry array for b/c calls
     $entry = $context + ['type' => $level, 'message' => $message, 'timestamp' => microtime(TRUE), 'memory' => memory_get_usage()];
     // Drush\Log\Logger should take over all of the responsibilities
     // of drush_log, including caching the log messages and sending
     // log messages along to backend invoke.
     // TODO: move these implementations inside this class.
     $log =& drush_get_context('DRUSH_LOG', array());
     $log[] = $entry;
     if ($level != LogLevel::DEBUG_NOTIFY) {
         drush_backend_packet('log', $entry);
     }
     if (drush_get_context('DRUSH_NOCOLOR')) {
         $red = "[%s]";
         $yellow = "[%s]";
         $green = "[%s]";
     } else {
         $red = "[%s]";
         $yellow = "[%s]";
         $green = "[%s]";
     }
     $verbose = drush_get_context('DRUSH_VERBOSE');
     $debug = drush_get_context('DRUSH_DEBUG');
     $debugnotify = drush_get_context('DRUSH_DEBUG_NOTIFY');
     switch ($level) {
         case LogLevel::WARNING:
         case LogLevel::CANCEL:
             $type_msg = sprintf($yellow, $level);
             break;
         case 'failed':
             // Obsolete; only here in case contrib is using it.
         // Obsolete; only here in case contrib is using it.
         case LogLevel::EMERGENCY:
             // Not used by Drush
         // Not used by Drush
         case LogLevel::ALERT:
             // Not used by Drush
         // Not used by Drush
         case LogLevel::ERROR:
             $type_msg = sprintf($red, $level);
             break;
         case LogLevel::OK:
         case 'completed':
             // Obsolete; only here in case contrib is using it.
         // Obsolete; only here in case contrib is using it.
         case LogLevel::SUCCESS:
         case 'status':
             // Obsolete; only here in case contrib is using it.
             // In quiet mode, suppress progress messages
             if (drush_get_context('DRUSH_QUIET')) {
                 return TRUE;
             }
             $type_msg = sprintf($green, $level);
             $level = LogLevel::NOTICE;
             break;
         case LogLevel::NOTICE:
             $type_msg = sprintf("[%s]", $level);
             break;
         case 'message':
             // Obsolete; only here in case contrib is using it.
         // Obsolete; only here in case contrib is using it.
         case LogLevel::INFO:
             if (!$verbose) {
                 // print nothing. exit cleanly.
                 return TRUE;
             }
             $type_msg = sprintf("[%s]", $level);
             $level = LogLevel::INFO;
             break;
         case LogLevel::DEBUG_NOTIFY:
             $level = LogLevel::DEBUG;
             // Report 'debug', handle like 'preflight'
         // Report 'debug', handle like 'preflight'
         case LogLevel::PREFLIGHT:
             if (!$debugnotify) {
                 // print nothing unless --debug AND --verbose. exit cleanly.
                 return TRUE;
             }
             $type_msg = sprintf("[%s]", $level);
             $level = LogLevel::DEBUG;
             break;
         case LogLevel::BOOTSTRAP:
         case LogLevel::DEBUG:
         default:
             if (!$debug) {
                 // print nothing. exit cleanly.
                 return TRUE;
             }
             $type_msg = sprintf("[%s]", $level);
             $level = LogLevel::DEBUG;
             break;
     }
     // When running in backend mode, log messages are not displayed, as they will
     // be returned in the JSON encoded associative array.
     if (drush_get_context('DRUSH_BACKEND')) {
         return;
     }
     $columns = drush_get_context('DRUSH_COLUMNS', 80);
     $width[1] = 11;
     // Append timer and memory values.
     if ($debug) {
         $timer = sprintf('[%s sec, %s]', round($entry['timestamp'] - DRUSH_REQUEST_TIME, 2), drush_format_size($entry['memory']));
         $entry['message'] = $entry['message'] . ' ' . $timer;
     }
     $message = $entry['message'];
     /*
           // Drush-styled output
     
           $message = $this->interpolate(
               $message,
               $this->getLogOutputStyler()->style($context)
           );
     
           $width[0] = ($columns - 11);
     
           $format = sprintf("%%-%ds%%%ds", $width[0], $width[1]);
     
           // Place the status message right aligned with the top line of the error message.
           $message = wordwrap($message, $width[0]);
           $lines = explode("\n", $message);
           $lines[0] = sprintf($format, $lines[0], $type_msg);
           $message = implode("\n", $lines);
           $this->getErrorStreamWrapper()->writeln($message);
     */
     // Robo-styled output
     parent::log($level, $message, $context);
 }