public MetricSnapshotTextWriter( TextWriter textWriter, string separator = MetricsTextFormatterConstants.OutputFormatting.Separator, int padding = MetricsTextFormatterConstants.OutputFormatting.Padding, Func <string, string, string> metricNameFormatter = null) { _textWriter = textWriter ?? throw new ArgumentNullException(nameof(textWriter)); _separator = separator; _padding = padding; _textPoints = new MetricsTextPoints(); if (metricNameFormatter == null) { _metricNameFormatter = (metricContext, metricName) => string.IsNullOrWhiteSpace(metricContext) ? metricName : $"[{metricContext}] {metricName}"; } else { _metricNameFormatter = metricNameFormatter; } }