anchor.diff:                      %% Don't use NewBuf - we want to keep the old
                       %% buffer state so we don't drop the msg.
                       ?ERR("drain_id=~p channel_id=~p dest=~s at=post "
  -                         "err=gen_tcp data=~p",
  -                         log_info(State, [Reason])),
  +                         "err=gen_tcp data=~p duration=~p",
  +                         log_info(State, [Reason, duration(State)])),
                       reconnect(tcp_error, tcp_bad(State))
               end
       end.
  
positive.code:                             post_buffer(tcp_good(State#state{buf=NewBuf}));
                          {error, Reason} ->
                              ?ERR("drain_id=~p channel_id=~p dest=~s at=post "
                                   "err=gen_tcp data=~p",
                                   log_info(State, [Reason])),
                              reconnect(tcp_error,
                                        tcp_bad(State))
                      end
  
negative.code:             msg_stat(drain_buffered, 1, State),
              NewBuf = logplex_drain_buffer:push(Msg, State#state.buf),
              NewState = tcp_bad(State#state{buf=NewBuf}),
              ?ERR("drain_id=~p channel_id=~p dest=~s at=post err=gen_tcp data=~p duration=~p",
                   log_info(NewState, [Reason, duration(State)])),
              {noreply, reconnect(tcp_error, NewState)}
      end;
  
  