private string RenderPropertyValue(LogEventPropertyValue propertyValue) { using (TextWriter tw = new StringWriter()) { propertyValue.Render(tw); var result = tw.ToString(); result = result.Trim('"'); return(result); } }
void PrettyPrint(LogEventPropertyValue value, string format, IFormatProvider formatProvider) { var scalar = value as ScalarValue; if (scalar != null) { Console.ForegroundColor = GetScalarColor(scalar); value.Render(Console.Out, format, formatProvider); return; } var seq = value as SequenceValue; if (seq != null) { Console.ForegroundColor = Punctuation; Console.Write("["); var sep = ""; foreach (var element in seq.Elements) { Console.ForegroundColor = Punctuation; Console.Write(sep); sep = ", "; PrettyPrint(element, null, formatProvider); } Console.ForegroundColor = Punctuation; Console.Write("]"); return; } var str = value as StructureValue; if (str != null) { if (str.TypeTag != null) { Console.ForegroundColor = Subtext; Console.Write(str.TypeTag); Console.Write(" "); } Console.ForegroundColor = Punctuation; Console.Write("{"); var sep = ""; foreach (var prop in str.Properties) { Console.ForegroundColor = Punctuation; Console.Write(sep); sep = ", "; Console.ForegroundColor = NameSymbol; Console.Write(prop.Name); Console.ForegroundColor = Punctuation; Console.Write("="); PrettyPrint(prop.Value, null, formatProvider); } Console.ForegroundColor = Punctuation; Console.Write("}"); return; } var div = value as DictionaryValue; if (div != null) { Console.ForegroundColor = Punctuation; Console.Write("{"); var sep = ""; foreach (var element in div.Elements) { Console.ForegroundColor = Punctuation; Console.Write(sep); sep = ", "; Console.Write("["); PrettyPrint(element.Key, null, formatProvider); Console.ForegroundColor = Punctuation; Console.Write("]="); PrettyPrint(element.Value, null, formatProvider); } Console.ForegroundColor = Punctuation; Console.Write("}"); return; } value.Render(Console.Out, format, formatProvider); }