private void WriteTabadminErrorEventIfMatch(LogLine logLine, Match logLineMatch) { var severity = logLineMatch.GetString("sev"); if (severity != "WARN" && severity != "ERROR" && severity != "FATAL") { return; } var timestamp = DateTime.Parse(logLineMatch.GetString("ts")); var timestampOffset = logLineMatch.GetString("ts_offset"); var timestampGmt = timestamp.Add(OffsetToTimeSpan(timestampOffset)); var worker = logLine.LogFileInfo.Worker; var version = GetVersionFromDictionary(worker, timestampGmt); var @event = new TabadminError() { File = logLine.LogFileInfo.FileName, FilePath = logLine.LogFileInfo.FilePath, Hostname = logLineMatch.GetString("hostname"), Id = $"{logLine.LogFileInfo.FilePath}-{logLine.LineNumber}", Line = logLine.LineNumber, Message = logLineMatch.GetString("message"), Severity = severity, Timestamp = timestamp, TimestampGmt = timestampGmt, TimestampOffset = timestampOffset, Version = version?.Version, VersionId = version?.Id, VersionLong = version?.VersionLong, Worker = logLine.LogFileInfo.Worker, }; _tabadminErrorWriter.AddLine(@event); }
/// <summary> /// Create a TabadminError object from mongoDocument and enqueue it to be persisted to the database. /// </summary> /// <param name="mongoDocument">Log message values to use to create the object.</param> protected void ProcessTabadminError(BsonDocument mongoDocument) { try { TabadminError tabadminError = new TabadminError(mongoDocument, logsetHash); persister.Enqueue(tabadminError); } catch (Exception ex) { string errorMessage = String.Format("Encountered an exception on {0}: {1}", mongoDocument.GetValue("_id"), ex); pluginResponse.AppendError(errorMessage); Log.Error(errorMessage); } }