anchor.diff:           set_level/1, default_level/0,
            log/3]).
   
  +-define(ERROR_LEVEL, 0).
  +-define(WARN_LEVEL,  1).
  +-define(INFO_LEVEL,  2).
  +-define(DEBUG_LEVEL, 3).
  +
   %% ===================================================================
   %% Public API
   %% ===================================================================
  
positive.code: init(Config) ->
      Verbosity = rebar_config:get_global(Config, verbose, default_level()),
      case valid_level(Verbosity) of
          0 -> set_level(error);
          1 -> set_level(warn);
          2 -> set_level(info);
          3 -> set_level(debug)
      end.
  
  set_level(Level) ->
  
negative.code:             ok
      end.
  
  default_level() -> ?WARN_LEVEL.
  
  %% ===================================================================
  %% Internal functions
  %% ===================================================================
  
  valid_level(Level) ->
      erlang:max(?ERROR_LEVEL, erlang:min(Level, ?DEBUG_LEVEL)).
  
  error_level() -> ?ERROR_LEVEL.
  
  should_log(debug, _)     -> true;
  should_log(info, debug)  -> false;
  