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; } }
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); }