public override string ToString()
{
if (!IsEnabled)
return "Metrics logging disabled";
StringBuilder builder = new StringBuilder();
lock (metricsLock)
{
foreach (var kvp in Properties)
{
Metric metric = kvp.Key;
List<object> values = kvp.Value;
Log(builder, metric, values);
}
foreach (var kvp in Timings)
{
Metric metric = kvp.Key;
List<Timing> list = kvp.Value;
foreach (var timing in list)
{
if (timing.IsFinished)
Log(builder, metric, timing.ElapsedTime);
}
}
foreach (var kvp in Counters)
{
Metric metric = kvp.Key;
long value = kvp.Value;
Log(builder, metric, value);
}
}
builder.Replace("\r", "\\r").Replace("\n", "\\n");
return builder.ToString();
}