/// <summary> /// Renders the specified log event context item and appends it to the specified <see cref="StringBuilder" />. /// </summary> /// <param name="builder">append to this</param> /// <param name="value">value to be appended</param> /// <param name="format">format string. If @, then serialize the value with the Default JsonConverter.</param> /// <param name="formatProvider">provider, for example culture</param> /// <param name="valueFormatter">NLog string.Format interface</param> public static void AppendFormattedValue(this StringBuilder builder, object value, string format, IFormatProvider formatProvider, IValueFormatter valueFormatter) { string stringValue = value as string; if (stringValue != null && string.IsNullOrEmpty(format)) { builder.Append(value); // Avoid automatic quotes } else if (format == MessageTemplates.ValueFormatter.FormatAsJson) { valueFormatter.FormatValue(value, null, CaptureType.Serialize, formatProvider, builder); } else if (value != null) { valueFormatter.FormatValue(value, format, CaptureType.Normal, formatProvider, builder); } }
protected string GetParameterValue(ParameterValue value, IValueFormatter valueFormatter, State state) { //Adjust time zone if (value.Value is DateTime) { value.Value = ((DateTime)value.Value).AdjustToTimeZone(state.Context.TimeZoneInfo); } string formattedValue; try { formattedValue = valueFormatter.FormatValue(value, state.Context); } catch { //The formatter couldn't format the value. Just print the value. formattedValue = "" + value.Value; } return(value.Format(state.Context.StringEncoder, formattedValue)); }
public bool FormatValue(object value, string format, CaptureType captureType, IFormatProvider formatProvider, StringBuilder builder) { if (!_isStructured && captureType == NLog.MessageTemplates.CaptureType.Normal) { switch (Convert.GetTypeCode(value)) { case TypeCode.String: { builder.Append((string)value); return(true); } case TypeCode.Char: { builder.Append((char)value); return(true); } case TypeCode.Empty: return(true); // null becomes empty string } } return(_originalFormatter.FormatValue(value, format, captureType, formatProvider, builder)); }