public ThemedMessageTemplateRenderer(ConsoleTheme theme, ThemedValueFormatter valueFormatter, bool isLiteral)
 {
     _theme                  = theme ?? throw new ArgumentNullException(nameof(theme));
     _valueFormatter         = valueFormatter;
     _isLiteral              = isLiteral;
     _unthemedValueFormatter = valueFormatter.SwitchTheme(NoTheme);
 }
        int RenderValue(ConsoleTheme theme, ThemedValueFormatter valueFormatter, LogEventPropertyValue propertyValue, TextWriter output, string format)
        {
            if (_isLiteral && propertyValue is ScalarValue sv && sv.Value is string)
            {
                var count = 0;
                using (theme.Apply(output, ConsoleThemeStyle.String, ref count))
                    output.Write(sv.Value);
                return(count);
            }

            return(valueFormatter.Format(propertyValue, output, format, _isLiteral));
        }
示例#3
0
        private int RenderValue(RichTextBoxTheme theme, ThemedValueFormatter valueFormatter, LogEventPropertyValue propertyValue, TextWriter output, string format)
        {
            if (_isLiteral && propertyValue is ScalarValue {
                Value : string
            } sv)
            {
                var count = 0;
                using (theme.Apply(output, RichTextBoxThemeStyle.String, ref count))
                {
                    var text = SpecialCharsEscaping.Apply(sv.Value.ToString(), ref count);
                    output.Write(text);
                }

                return(count);
            }

            return(valueFormatter.Format(propertyValue, output, format, _isLiteral));
        }
        public PropertiesTokenRenderer(ConsoleTheme theme, PropertyToken token, MessageTemplate outputTemplate, IFormatProvider formatProvider)
        {
            _outputTemplate = outputTemplate;
            _theme          = theme ?? throw new ArgumentNullException(nameof(theme));
            _token          = token ?? throw new ArgumentNullException(nameof(token));
            var isJson = false;

            if (token.Format != null)
            {
                for (var i = 0; i < token.Format.Length; ++i)
                {
                    if (token.Format[i] == 'j')
                    {
                        isJson = true;
                    }
                }
            }

            _valueFormatter = isJson
                ? (ThemedValueFormatter) new ThemedJsonValueFormatter(theme, formatProvider)
                : new ThemedDisplayValueFormatter(theme, formatProvider);
        }
        public MessageTemplateOutputTokenRenderer(ConsoleTheme theme, PropertyToken token, IFormatProvider formatProvider, bool jsonMultiline)
        {
            _theme = theme ?? throw new ArgumentNullException(nameof(theme));
            _token = token ?? throw new ArgumentNullException(nameof(token));
            bool isLiteral = false, isJson = false;

            if (token.Format != null)
            {
                for (var i = 0; i < token.Format.Length; ++i)
                {
                    if (token.Format[i] == 'l')
                    {
                        isLiteral = true;
                    }
                    else if (token.Format[i] == 'j')
                    {
                        isJson = true;
                    }
                }
            }

            ThemedValueFormatter valueFormatter = null;

            if (isJson)
            {
                valueFormatter = jsonMultiline
                    ? (ThemedValueFormatter) new ThemedJsonValueFormatter(theme, formatProvider)
                    : (ThemedValueFormatter) new ThemedJsonMultilineValueFormatter(theme, formatProvider);
            }
            else
            {
                valueFormatter = new ThemedDisplayValueFormatter(theme, formatProvider);
            }

            _renderer = new ThemedMessageTemplateRenderer(theme, valueFormatter, isLiteral);
        }