anchor.diff:  populate_token_drain_data([Drain|Tail]) when is_record(Drain, drain) ->
       case ets:match_object(tokens, #token{id='_', channel_id=Drain#drain.channel_id, name='_', app_id='_', addon='_', drains='_'}) of
           [] ->
  -            error_logger:error_report([?MODULE, populate_token_drain_data, undefined_tokens, Drain]);
  +            error_logger:error_msg("~p ~p ~p ~p~n", [?MODULE, populate_token_drain_data, undefined_tokens, Drain]);
           Tokens ->
               Drain1 = Drain#drain{resolved_host=logplex_utils:resolve_host(Drain#drain.host)},
               ets:insert(tokens, [Token#token{drains=[Drain1|Drains]} || #token{drains=Drains}=Token <- Tokens])
  
positive.code: remove_token_drain_data(DrainId) ->
      case logplex_drain:lookup(DrainId) of
          undefined ->
              error_logger:error_report([?MODULE, remove_token_drain_data, undefined_drain, DrainId]);
          Drain ->
              case ets:match_object(tokens, #token{id='_', channel_id=Drain#drain.channel_id, name='_', app_id='_', addon='_', drains='_'}) of
                  [] ->
                      error_logger:error_report([?MODULE, remove_token_drain_data, undefined_tokens, Drain]);
                  Tokens ->
                      ets:insert(tokens, [begin
                          Drains1 = lists:filter(fun(#drain{id=Id}) -> Id =/= DrainId end, Drains),
  
negative.code: populate_token_channel_data([Token|Tail]) when is_record(Token, token) ->
      case logplex_channel:lookup(Token#token.channel_id) of
          undefined ->
              error_logger:error_msg("~p ~p ~p ~p~n", [?MODULE, populate_token_channel_data, undefined_channel, Token]);
          #channel{app_id=AppId, addon=Addon} ->
              ets:insert(tokens, Token#token{app_id=AppId, addon=Addon})
      end,
  