| Index: utils/pub/log.dart
 | 
| diff --git a/utils/pub/log.dart b/utils/pub/log.dart
 | 
| index ec3fee9798944e586b359b1a0ab0891f78f8d0e0..f0d6b04713e94ef611d7d985d9e089fbdf739970 100644
 | 
| --- a/utils/pub/log.dart
 | 
| +++ b/utils/pub/log.dart
 | 
| @@ -36,6 +36,9 @@ class Level {
 | 
|    /// operation, process spawning, or file IO.
 | 
|    static const IO = const Level._("IO  ");
 | 
|  
 | 
| +  /// Incremental output during pub's version constraint solver.
 | 
| +  static const SOLVER = const Level._("SLVR");
 | 
| +
 | 
|    /// Fine-grained and verbose additional information. Can be used to provide
 | 
|    /// program state context for other logs (such as what pub was doing when an
 | 
|    /// IO operation occurred) or just more detail for an operation.
 | 
| @@ -68,6 +71,9 @@ void message(message) => write(Level.MESSAGE, message);
 | 
|  /// Logs [message] at [Level.IO].
 | 
|  void io(message) => write(Level.IO, message);
 | 
|  
 | 
| +/// Logs [message] at [Level.SOLVER].
 | 
| +void solver(message) => write(Level.SOLVER, message);
 | 
| +
 | 
|  /// Logs [message] at [Level.FINE].
 | 
|  void fine(message) => write(Level.FINE, message);
 | 
|  
 | 
| @@ -168,6 +174,7 @@ void showNormal() {
 | 
|    _loggers[Level.WARNING] = _logToStderr;
 | 
|    _loggers[Level.MESSAGE] = _logToStdout;
 | 
|    _loggers[Level.IO]      = null;
 | 
| +  _loggers[Level.SOLVER]  = null;
 | 
|    _loggers[Level.FINE]    = null;
 | 
|  }
 | 
|  
 | 
| @@ -178,6 +185,18 @@ void showIO() {
 | 
|    _loggers[Level.WARNING] = _logToStderrWithLabel;
 | 
|    _loggers[Level.MESSAGE] = _logToStdoutWithLabel;
 | 
|    _loggers[Level.IO]      = _logToStderrWithLabel;
 | 
| +  _loggers[Level.SOLVER]  = null;
 | 
| +  _loggers[Level.FINE]    = null;
 | 
| +}
 | 
| +
 | 
| +/// Sets the verbosity to "solver", which shows errors, warnings, messages, and
 | 
| +/// solver logs.
 | 
| +void showSolver() {
 | 
| +  _loggers[Level.ERROR]   = _logToStderr;
 | 
| +  _loggers[Level.WARNING] = _logToStderr;
 | 
| +  _loggers[Level.MESSAGE] = _logToStdout;
 | 
| +  _loggers[Level.IO]      = null;
 | 
| +  _loggers[Level.SOLVER]  = _logToStdout;
 | 
|    _loggers[Level.FINE]    = null;
 | 
|  }
 | 
|  
 | 
| @@ -187,6 +206,7 @@ void showAll() {
 | 
|    _loggers[Level.WARNING] = _logToStderrWithLabel;
 | 
|    _loggers[Level.MESSAGE] = _logToStdoutWithLabel;
 | 
|    _loggers[Level.IO]      = _logToStderrWithLabel;
 | 
| +  _loggers[Level.SOLVER]  = _logToStderrWithLabel;
 | 
|    _loggers[Level.FINE]    = _logToStderrWithLabel;
 | 
|  }
 | 
|  
 | 
| 
 |