public static void LogAndSendMessage(this Logger logger, StagingDTO staging, string action, Guid?projectUid, Guid winServiceIterationUid, string message, bool isWarn, Exception exception, string actionSource = null, string actionStartEndMarker = null) { LogMessage logMessage = GenerateMessage(staging, action, projectUid, winServiceIterationUid, message, isWarn, exception, actionSource, actionStartEndMarker); if (logMessage.WinServiceIterationUid != Guid.Empty && !string.IsNullOrEmpty(logMessage.ActionSource)) { AddToCollection(logMessage); } if (logMessage.WinServiceIterationUid != Guid.Empty && !string.IsNullOrEmpty(logMessage.ActionSource) && logMessage.ActionStartEndMarker == CommonConstants.End) { try { ProjectOnlineSystemConnectorHubHelper.SendLogMessage(logMessage); } catch (InvalidOperationException invalidOperationException) { } catch (Exception exc) { logger.Error(exc); } } if (!String.IsNullOrEmpty(message)) { if (isWarn) { logger.Warn(message); } else { if (exception != null) { logger.Error(message); } else { logger.Info(message); } } } if (exception != null) { logger.Error(exception); } }
private static LogMessage GenerateMessage(StagingDTO staging, string action, Guid?projectUid, Guid winServiceIterationGuid, string message, bool isWarn, Exception exception, string actionSource, string actionStartEndMarker) { var logMessage = new LogMessage { WinServiceIterationUid = winServiceIterationGuid, Message = message, IsWarn = isWarn, ActionIndex = actionIndex, Action = action, ActionSource = actionSource, ActionStartEndMarker = actionStartEndMarker, TimeStampStart = DateTime.Now }; if (staging != null) { logMessage.StagingRecordDateCreated = staging.RecordDateCreated; logMessage.StagingIssueKey = staging.IssueKey; logMessage.StagingSystemId = staging.SystemId; } if (exception != null) { logMessage.ActionResult = CommonConstants.Ko; logMessage.ExceptionMessage = exception.Message; } else { logMessage.ActionResult = CommonConstants.Ok; } if (projectUid.HasValue) { logMessage.IsBroadcastMessage = false; logMessage.ProjectUid = projectUid.Value; } else { logMessage.IsBroadcastMessage = true; } actionIndex++; return(logMessage); }