anchor.diff:    Duration = random:uniform(Max),
     autocluster_log:info("Delaying startup for ~pms.", [Duration]),
     timer:sleep(Duration).
  +
  +
  +%% Misc Method(s)
  +
  +
  +%%--------------------------------------------------------------------
  +%% @private
  +%% @doc
  +%% Configure autocluster logging at the configured level, if it's not
  +%% already configured at the same level.
  +%% @end
  +%%--------------------------------------------------------------------
  +-spec ensure_logging_configured() -> ok.
  +ensure_logging_configured() ->
  +  Level = autocluster_config:get(autocluster_log_level),
  +  autocluster_log:set_level(Level).
  
positive.code: -compile(export_all).
  -endif.
  
  -spec init() -> ok | error.
  %% @doc Register the node with Consul and then check to see if there are other
  %%      nodes available that this node can cluster with. If so, stop the rabbit
  %%      and mnesia applications, reset the mnesia database, join the cluster,
  %%      and then start the mnesia and rabbit applications back up again.
  %% @end
  %%
  init() ->
    autocluster_log:maybe_set_default_log_level(),
    application:ensure_all_started(inets),
    case node_is_registered() of
      error ->
  
negative.code:       maybe_cluster_node(Registered)
    end.
  
  %% Clustering Logic
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Step 1: get the backend type from config and pass it to step two.
  %% @end
  %%--------------------------------------------------------------------
  -spec node_is_registered() -> ok | error.
  node_is_registered() ->
    ensure_registered(autocluster_config:get(backend)).
  
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Step 2: get the module for the backend type and pass it to step three.
  %% @end
  %%--------------------------------------------------------------------
  -spec ensure_registered(atom()) -> ok | error.
  ensure_registered(aws) ->
    autocluster_log:debug("Using AWS backend"),
    ensure_registered(aws, autocluster_aws);
  
  ensure_registered(consul) ->
    autocluster_log:debug("Using consul backend"),
    ensure_registered(consul, autocluster_consul);
  
  ensure_registered(dns) ->
    autocluster_log:debug("Using DNS backend"),
    ensure_registered(dns, autocluster_dns);
  
  ensure_registered(etcd) ->
    autocluster_log:debug("Using etcd backend"),
    ensure_registered(etcd, autocluster_etcd);
  
  ensure_registered(unconfigured) ->
    autocluster_log:error("Backend is not configured"),
    error;
  
  ensure_registered(Backend) ->
    autocluster_log:error("Unsupported backend: ~s.", [Backend]),
    error.
  
  %%--------------------------------------------------------------------
  %% @private
  %% @doc
  %% Step 3: get the list of nodes from the service discovery backend
  %% and pass them to step four to possibly register the node with the
  %% backend.
  %% @end
  %%--------------------------------------------------------------------
  -spec ensure_registered(Name :: atom(), Module :: module())
      -> ok | error.
  ensure_registered(Name, Module) ->
    maybe_delay_startup(),
    autocluster_log:info("Starting ~p registration.", [Name]),
  