Exemplo n.º 1
0
        protected virtual void WriteRenderingsValues(IGrouping <string, PropertyToken>[] tokensWithFormat, IReadOnlyDictionary <string, LogEventPropertyValue> properties, TextWriter output)
        {
            var rdelim = "";

            foreach (var ptoken in tokensWithFormat)
            {
                output.Write(rdelim);
                rdelim = ",";
                output.Write("\"");
                output.Write(ptoken.Key);
                output.Write("\":[");

                var fdelim = "";
                foreach (var format in ptoken)
                {
                    output.Write(fdelim);
                    fdelim = ",";

                    output.Write("{");
                    var eldelim = "";

                    WriteJsonProperty("Format", format.Format, ref eldelim, output);

                    var sw = new StringWriter();
                    MessageTemplateRenderer.RenderPropertyToken(format, properties, sw, _formatProvider, true, false);
                    WriteJsonProperty("Rendering", sw.ToString(), ref eldelim, output);

                    output.Write("}");
                }

                output.Write("]");
            }
        }
Exemplo n.º 2
0
        protected virtual void WriteRenderingsValues(IGrouping <string, PropertyToken>[] tokensWithFormat, IReadOnlyDictionary <string, LogEventPropertyValue> properties, TextWriter output)
        {
            var propertyDelimiter = "";

            foreach (var propertyFormats in tokensWithFormat)
            {
                output.Write(propertyDelimiter);
                propertyDelimiter = ",";
                output.Write("\"");
                output.Write(propertyFormats.Key);
                output.Write("\":[");

                var formatDelimiter = "";
                foreach (var format in propertyFormats)
                {
                    output.Write(formatDelimiter);
                    formatDelimiter = ",";

                    output.Write("{");
                    var elementDelimiter = "";

                    WriteJsonProperty("Format", format.Format, ref elementDelimiter, output);

                    var sw = new StringWriter();
                    MessageTemplateRenderer.RenderPropertyToken(format, properties, sw, _formatProvider, isLiteral: true, isJson: false);
                    WriteJsonProperty("Rendering", sw.ToString(), ref elementDelimiter, output);

                    output.Write("}");
                }

                output.Write("]");
            }
        }
Exemplo n.º 3
0
        /// <summary>
        /// Render the token to the output.
        /// </summary>
        /// <param name="properties">Properties that may be represented by the token.</param>
        /// <param name="output">Output for the rendered string.</param>
        /// <param name="formatProvider">Supplies culture-specific formatting information, or null.</param>
        public override void Render(IReadOnlyDictionary <string, LogEventPropertyValue> properties, TextWriter output, IFormatProvider formatProvider = null)
        {
            if (properties == null)
            {
                throw new ArgumentNullException(nameof(properties));
            }
            if (output == null)
            {
                throw new ArgumentNullException(nameof(output));
            }

            MessageTemplateRenderer.RenderPropertyToken(this, properties, output, formatProvider, isLiteral: false, isJson: false);
        }