* Interface for an access logger. The logger provides abstraction on top of gRPC stream, deals with
template <typename HttpLogProto, typename TcpLogProto, typename LogRequest, typename LogResponse>
// AboveWriteBufferHighWatermark during `flush()` so that we tracks the log entries dropped caused
// For unary gRPC client, `canLogMore` always returns True[1][2] so `stats_` here is meaningless.
// [1]https://github.com/envoyproxy/envoy/blob/cd5ef906026160ec2cd766d8d18217e668c256d8/source/extensions/access_loggers/common/grpc_access_logger.h#L287.
// [2]https://github.com/envoyproxy/envoy/blob/cd5ef906026160ec2cd766d8d18217e668c256d8/source/extensions/access_loggers/common/grpc_access_logger.h#L126
if (max_buffer_size_bytes_ == 0 || approximate_message_size_bytes_ < max_buffer_size_bytes_) {
: scope_(scope), async_client_manager_(async_client_manager), tls_slot_(tls.allocateSlot()) {