private void Log(string requestId, EventType eventType, byte[] bytes, Encoding?textEncoding, int?block = null)
            {
                string?stringValue = textEncoding?.GetString(bytes);

                // We checked IsEnabled before we got here
                Debug.Assert(_eventSource != null);
                AzureCoreEventSource azureCoreEventSource = _eventSource !;

                switch (eventType)
                {
                case EventType.Request when stringValue != null:
                    azureCoreEventSource.RequestContentText(requestId, stringValue);
                    break;

                case EventType.Request:
                    azureCoreEventSource.RequestContent(requestId, bytes);
                    break;

                // Response
                case EventType.Response when block != null && stringValue != null:
                    azureCoreEventSource.ResponseContentTextBlock(requestId, block.Value, stringValue);
                    break;

                case EventType.Response when block != null:
                    azureCoreEventSource.ResponseContentBlock(requestId, block.Value, bytes);
                    break;

                case EventType.Response when stringValue != null:
                    azureCoreEventSource.ResponseContentText(requestId, stringValue);
                    break;

                case EventType.Response:
                    azureCoreEventSource.ResponseContent(requestId, bytes);
                    break;

                // ResponseError
                case EventType.ErrorResponse when block != null && stringValue != null:
                    azureCoreEventSource.ErrorResponseContentTextBlock(requestId, block.Value, stringValue);
                    break;

                case EventType.ErrorResponse when block != null:
                    azureCoreEventSource.ErrorResponseContentBlock(requestId, block.Value, bytes);
                    break;

                case EventType.ErrorResponse when stringValue != null:
                    azureCoreEventSource.ErrorResponseContentText(requestId, stringValue);
                    break;

                case EventType.ErrorResponse:
                    azureCoreEventSource.ErrorResponseContent(requestId, bytes);
                    break;
                }
            }
 public ContentEventSourceWrapper(AzureCoreEventSource eventSource, bool logContent, int maxLength, CancellationToken cancellationToken)
 {
     _eventSource       = logContent ? eventSource : null;
     _maxLength         = maxLength;
     _cancellationToken = cancellationToken;
 }