public string FormatMessage(LogEventInfo logEvent) { if (!HasProperties(logEvent)) { return(logEvent.Message); } // Prevent multiple layouts on different targets to render the same properties lock (logEvent) { using (var builder = _builderPool.Acquire()) { logEvent.Message.Render(logEvent.FormatProvider ?? CultureInfo.CurrentCulture, logEvent.Parameters, _forceTemplateRenderer, builder.Item, out var messageTemplateParameterList); if (logEvent.PropertiesDictionary == null) { if (messageTemplateParameterList != null && messageTemplateParameterList.Count > 0) { logEvent.PropertiesDictionary = new PropertiesDictionary(messageTemplateParameterList); } } else { logEvent.PropertiesDictionary.MessageProperties = messageTemplateParameterList; } return(builder.Item.ToString()); } } }
public string FormatMessage(LogEventInfo logEvent) { if (!HasParameters(logEvent)) { return(logEvent.Message); } using (var builder = _builderPool.Acquire()) { AppendToBuilder(logEvent, builder.Item); return(builder.Item.ToString()); } }
private StringBuilderPool.ItemHolder _builder; // Not readonly to avoid struct-copy on Dispose(), and to avoid VerificationException when medium-trust AppDomain public AppendBuilderCreator(StringBuilder appendTarget, bool mustBeEmpty) { _appendTarget = appendTarget; if (_appendTarget.Length > 0 && mustBeEmpty) { _builder = _builderPool.Acquire(); } else { _builder = new StringBuilderPool.ItemHolder(_appendTarget, null, 0); } }