예제 #1
0
 /// <summary>
 /// Logs an error.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="ex">An exception.</param>
 public static void LogError(string message, Exception ex)
 {
     lock (_eventLog)
     {
         if (ex is System.Threading.ThreadAbortException)
         {
             _eventLog.WriteWarning("Task scheduling and execution aborted.");
         }
         else
         {
             var msg = string.Format("An error ocurred during task execution:\r\n\r\n{0}\r\n\r\n{1}: {2}\r\n\r\nStacktrace:\r\n{3}", message, ex.GetType().Name, ex.Message, ex.StackTrace);
             _eventLog.WriteError(msg);
         }
     }
 }
예제 #2
0
        /// <summary>
        ///     Writes the specified audit log entry.
        /// </summary>
        /// <param name="entryData">The entry data.</param>
        /// <exception cref="System.ArgumentNullException">entryData</exception>
        public void Write(IAuditLogEntryData entryData)
        {
            if (entryData == null)
            {
                throw new ArgumentNullException(nameof(entryData));
            }

            // Writes an entry to the event log
            var eventLogMessage = new StringBuilder();

            eventLogMessage.AppendLine($"Audit log entry. Type: '{entryData.AuditLogEntryType.Name}'");
            eventLogMessage.AppendLine($"AuditLogMessage: '{entryData.Message}'");
            eventLogMessage.AppendLine($"Success: '{entryData.Success}'");
            eventLogMessage.AppendLine($"Severity: '{entryData.SeverityEnum}'");
            eventLogMessage.AppendLine($"UserName: '******'");
            eventLogMessage.AppendLine($"CreatedDate: '{entryData.CreatedDate.ToLocalTime().ToString("o")}'");

            if (entryData.Parameters.Count > 0)
            {
                eventLogMessage.AppendLine("Parameters:");
                foreach (var kvp in entryData.Parameters)
                {
                    eventLogMessage.AppendLine($"{kvp.Key}: '{kvp.Value}'");
                }
            }

            switch (entryData.SeverityEnum)
            {
            case AuditLogSeverityEnum_Enumeration.AuditLogError:
                _eventLog.WriteError(eventLogMessage.ToString());
                break;

            case AuditLogSeverityEnum_Enumeration.AuditLogInformation:
                _eventLog.WriteInformation(eventLogMessage.ToString());
                break;

            case AuditLogSeverityEnum_Enumeration.AuditLogWarning:
                _eventLog.WriteWarning(eventLogMessage.ToString());
                break;
            }
        }
예제 #3
0
        /// <summary>
        ///     Runs the action.
        /// </summary>
        /// <param name="action">The action.</param>
        /// <param name="cancellationToken">The cancellation token.</param>
        private void RunAction(Action action, CancellationToken cancellationToken)
        {
            try
            {
                if (cancellationToken.IsCancellationRequested)
                {
                    return;
                }
                action();
            }
            catch (Exception ex)
            {
                string msg = "An error occured running rendezvous point action. Id:{0}, Error:{1}.";

                if (_eventLog != null)
                {
                    _eventLog.WriteWarning(msg, _id, ex.ToString());
                }
                else
                {
                    Trace.TraceWarning(msg, _id, ex);
                }
            }
        }
예제 #4
0
 /// <summary>
 ///     Writes the warning.
 /// </summary>
 /// <param name="message">The message.</param>
 /// <param name="args">The arguments.</param>
 public void WriteWarning(string message, params object[] args)
 {
     _view.WriteWarning(message, args);
 }