Esempio n. 1
0
        public static string ToJson(this JsonEvent evt)
        {
            try
            {
                var logstash = new StringBuilder();
                var comma    = ",";
                logstash.Append("{")
                .WriteValueObject("@version", evt.version).Append(comma)
                .WriteString("@timestamp", evt.timestamp).Append(comma)
                //.WriteString(nameof(JsonEvent.source_host), evt.source_host).Append(comma)
                .WriteString(nameof(JsonEvent.app), evt.app).Append(comma)
                .WriteString(nameof(JsonEvent.thread_name), evt.thread_name).Append(comma)
                .WriteString(nameof(JsonEvent.@class), evt.@class).Append(comma)
                .WriteString(nameof(JsonEvent.method), evt.method).Append(comma)
                //.WriteString(nameof(JsonEvent.line_number), evt.line_number).Append(comma)
                .WriteString(nameof(JsonEvent.level), evt.level).Append(comma)
                .WriteString(nameof(JsonEvent.logger_name), evt.logger_name).Append(comma);

                foreach (var prop in evt.properties)
                {
                    logstash.WriteString(prop.Key, prop.Value).Append(comma);
                }

                if (evt.contextData?.Any() ?? false)
                {
                    foreach (var contextData in evt.contextData)
                    {
                        logstash.WriteString(contextData.Key, contextData.Value).Append(comma);
                    }
                }

                if (evt.threadProps?.Any() ?? false)
                {
                    foreach (var threadProp in evt.threadProps)
                    {
                        logstash.WriteString(threadProp.Key, threadProp.Value).Append(comma);
                    }
                }

                if (evt.tags?.Any() ?? false)
                {
                    var innerArray = string.Join(", ", evt.tags.Select(tag => $"\"{tag}\""));
                    logstash.Append($"\"tags\":[{innerArray}]").Append(comma);
                }

                logstash.WriteMessage(evt)
                .Append("}");

                var json = logstash.ToString();
                //WriteToFile(json);
                return(json);
            }
            catch (Exception e)
            {
                var formattableString = $"Exception in ToJson: {e.Message} {e}";
                WriteToFile(formattableString);
                throw;
            }
        }
Esempio n. 2
0
        public static StringBuilder WriteMessage(this StringBuilder sb, JsonEvent evt)
        {
            sb.WriteString(nameof(JsonEvent.message), evt.message);

            if (evt.exception != null)
            {
                sb.Append(",")
                .Append("\"exception\":{")
                .WriteString(nameof(JsonException.exception_class), evt.exception.exception_class).Append(",")
                .WriteString(nameof(JsonException.exception_message), evt.exception.exception_message).Append(",")
                .WriteString(nameof(JsonException.stacktrace), evt.exception.stacktrace)
                .Append("}");
            }
            return(sb);
        }