anchor.diff:  create_drain(Id, Dict) ->
       case dict_find(<<"ch">>, Dict) of
           undefined ->
  -            ?ERR("~p ~p ~p ~p~n",
  +            ?ERR("~p ~p ~p ~p",
                    [create_drain, missing_ch, Id, dict:to_list(Dict)]);
           Val1 ->
               Ch = list_to_integer(binary_to_list(Val1)),
               case dict_find(<<"token">>, Dict) of
                   undefined ->
  -                    ?ERR("~p ~p ~p ~p~n",
  +                    ?ERR("~p ~p ~p ~p",
                            [create_drain, missing_token, Id, dict:to_list(Dict)]);
                   Token ->
                       Host = dict_find(<<"host">>, Dict),
  
positive.code: populate_token_channel_data([Token|Tail]) when is_record(Token, token) ->
      case logplex_channel:lookup(Token#token.channel_id) of
          undefined ->
              ?ERR("~p ~p ~p~n",
                   [populate_token_channel_data, undefined_channel, Token]);
          #channel{app_id=AppId} ->
              ets:insert(tokens, Token#token{app_id=AppId})
  
negative.code:                             logplex_drain:start(tcpsyslog, Token,
                                                  [Ch, Token, Host, Port]);
                          _ ->
                              ?ERR("no udp support for ~p ~p ~p:~p",
                                   [Ch, Token, Host, Port])
                      end,
                      Drain = #drain{
  