public override void Render(LogEvent logEvent, TextWriter output)
        {
            if (_token.Alignment == null || !_theme.CanBuffer)
            {
                _renderer.Render(logEvent.MessageTemplate, logEvent.Properties, output);
                return;
            }

            var buffer    = new StringWriter();
            var invisible = _renderer.Render(logEvent.MessageTemplate, logEvent.Properties, buffer);
            var value     = buffer.ToString();

            Padding.Apply(output, value, _token.Alignment.Value.Widen(invisible));
        }
        static string Render(IFormatProvider formatProvider, string messageTemplate, params object[] properties)
        {
            var binder = new LoggerConfiguration().CreateLogger();

            binder.BindMessageTemplate(messageTemplate, properties, out var mt, out var props);
            var output   = new StringBuilder();
            var writer   = new StringWriter(output);
            var renderer = new ThemedMessageTemplateRenderer(ConsoleTheme.None,
                                                             new ThemedDisplayValueFormatter(ConsoleTheme.None, formatProvider), false);

            renderer.Render(mt, props.ToDictionary(p => p.Name, p => p.Value), writer);
            writer.Flush();
            return(output.ToString());
        }
 public override void Render(LogEvent logEvent, TextWriter output)
 {
     _renderer.Render(logEvent.MessageTemplate, logEvent.Properties, output);
 }